摘要:初始化所有的程序都必須創(chuàng)建一個(gè)程序?qū)嵗@個(gè)程序?qū)嵗褪穷惖膶?duì)象。定義路由最簡(jiǎn)便的方式,是使用程序?qū)嵗峁┑男揎椘髑袄押瘮?shù)注冊(cè)為程序根地址的處理程序。
初始化
所有的Flask程序都必須創(chuàng)建一個(gè)程序?qū)嵗?這個(gè)程序?qū)嵗褪荈lask類的對(duì)象。客戶端把請(qǐng)求發(fā)送給Web服務(wù)器, 服務(wù)器再把請(qǐng)求發(fā)送給Flask程序?qū)嵗?然后由程序?qū)嵗幚碚?qǐng)求。
創(chuàng)建程序?qū)嵗?/p>
from flask import Flask app = Flask(__name__) ? ? ? ?
注意: 此處的__name__是一個(gè)全局變量, 它的值是代碼所處的模塊或包的名字, Flask用這個(gè)參數(shù)決定程序的根目錄, 以便稍后能找到相對(duì)于程序根目錄的資源文件位置。路由和視圖函數(shù)
? ? 還是上面那句話——客戶端把請(qǐng)求發(fā)送給Web服務(wù)器, 服務(wù)器再把請(qǐng)求發(fā)送給Flask程序?qū)嵗?然后由程序?qū)嵗幚碚?qǐng)求。
? ? 那么程序?qū)嵗绾翁幚碚?qǐng)求, 答案是程序?qū)嵗ㄟ^(guò)路由來(lái)處理請(qǐng)求——路由就是URL和處理請(qǐng)求的函數(shù)的映射——處理請(qǐng)求的函數(shù)就叫做視圖函數(shù)。
? ? Flask定義路由最簡(jiǎn)便的方式, 是使用程序?qū)嵗峁┑腶pp.route修飾器:
@app.route("/"): def index(): return "Hello world!
"
? ? ? ?
? ? ? ?
前例把index()函數(shù)注冊(cè)為程序根地址的處理程序。 (?如果部署程序的服務(wù)器域名為www.example.com, 在瀏覽器中訪問(wèn)http://www.example.com后, 會(huì)觸發(fā)服務(wù)器執(zhí)行index()函數(shù)。 )
? ? ? ? ?這個(gè)函數(shù)的返回值稱為響應(yīng), 是客戶端接收到的內(nèi)容。
? ? 地址中包含可變部分的路由:
? ? ? ? @app.route("/user/
? ? ? ? ?def user(name):
? ? ? ? ? ? ?return "
? ? ? ? 尖括號(hào)中的內(nèi)容就是動(dòng)態(tài)部分,任何能匹配靜態(tài)部分的URL都會(huì)映射到這個(gè)視圖函數(shù), 調(diào)用視圖函數(shù)時(shí), Flask會(huì)將動(dòng)態(tài)部分作為參數(shù)傳入函數(shù)。
? ? ? ? 注意:路由中的動(dòng)態(tài)部分默認(rèn)類型是字符串, 不過(guò)也可以使用別的類型如:/user/
3.啟動(dòng)服務(wù)器
? ? 程序?qū)嵗胷un方法啟動(dòng)Flask集成的開發(fā)Web服務(wù)器:
? ? ? ? if name == "__main__": (只有直接運(yùn)行該模塊時(shí)條件才為真, 該模塊被導(dǎo)入條件為假)
? ? ? ? ? ? app.run(debug=True) ?#debug參數(shù)為True, 表示啟用調(diào)試模式。
? ? 服務(wù)器啟動(dòng)后會(huì)進(jìn)入輪詢, 等待并處理請(qǐng)求, 直到程序停止, 比如按Ctrl+C
4.一個(gè)完整的程序
from flask import Flask
app = Flask(__name__)
靜態(tài)路由@app.route("/")
def index():
? ? return "
@app.route("/user/
def index(name):
? ? return "
if name == "__main__":
? ? #服務(wù)器輪詢
? ? app.run(debug=True)
————————————————————————實(shí)踐—————————————————————————
5.實(shí)踐操作
一.準(zhǔn)備
按上節(jié)所說(shuō),?
? ? &cd flasky ? ? 進(jìn)入flasky文件夾
? ? &source venv/bin/activate ? ?激活虛擬環(huán)境
遷出新版本,
? ? &git checkout 2a ? ? ?此命令遷出的是只含有靜態(tài)路由的程序, 效果圖如下:
? ? ? ??
? ? ? ? ?注意此時(shí)遷出的版本hello.py只有一個(gè)靜態(tài)路由。 而且沒(méi)有啟動(dòng)服務(wù)器的代碼, 我們要手動(dòng)修改加上, 然后:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/42500.html
摘要:一個(gè)應(yīng)用程序中可以有很多,這些都共享同一個(gè)對(duì)象,我們經(jīng)常將對(duì)象叫域?qū)ο蟆3S玫牡墨@取對(duì)象的向?qū)ο蠼壎〝?shù)據(jù)的從對(duì)象取出數(shù)據(jù)的獲取當(dāng)前應(yīng)用的初始化參數(shù)的獲取資源文件,返回流的獲取資源文件,返回路徑 第一個(gè)Servlet開發(fā)步驟 01_創(chuàng)建一個(gè)普通Java類,實(shí)現(xiàn)Servlet接口 02_將寫好的Servlet類,還得配置到web.xml文件中去 Demo01.java 編寫一個(gè)簡(jiǎn)單的...
摘要:?jiǎn)?dòng)項(xiàng)目,驗(yàn)證進(jìn)入到項(xiàng)目中的中的方法的類中,在方法上點(diǎn)擊啟動(dòng)啟動(dòng)報(bào)錯(cuò),查看報(bào)錯(cuò)原因分析問(wèn)題原因說(shuō)明端口被占用了。解決方法修改的端口號(hào),或者將端口的應(yīng)用的端口號(hào)修改了。再次啟動(dòng)項(xiàng)目啟動(dòng)成功,驗(yàn)證項(xiàng)目,驗(yàn)證成功 1.創(chuàng)建項(xiàng)目 打開IDEA,F(xiàn)ile->New->ProjectshowImg(https://segmentfault.com/img/bV22nr?w=523&h=225); ...
摘要:快速入門什么是是一個(gè)開放源代碼的庫(kù),為呈現(xiàn)的數(shù)據(jù)提供了視圖渲染。最后,項(xiàng)目根組件應(yīng)該通過(guò)來(lái)進(jìn)行注冊(cè),以便能夠進(jìn)行打包和正常運(yùn)行。基本思想是渲染一個(gè)立方體,并將觀眾置于中心,隨后移動(dòng)。表示從指定方向平均照亮所有物體的光源。 React VR 快速入門 什么是React React是一個(gè)開放源代碼的JavaScript庫(kù),為HTML呈現(xiàn)的數(shù)據(jù)提供了視圖渲染。React視圖通常使用指定的像H...
摘要:堆棧位于通用隨機(jī)訪問(wèn)存儲(chǔ)器中,但通過(guò)堆棧指針可以從處理器那里獲得直接支持。堆棧指針若向下移動(dòng),則分配新的內(nèi)存若向上移動(dòng),則釋放那些內(nèi)存。創(chuàng)建程序時(shí),系統(tǒng)必須知道存儲(chǔ)在堆棧內(nèi)所有項(xiàng)的確切聲明周期,以便上下移動(dòng)堆棧指針。 寫在前面 首先我想說(shuō)的是 Java編程思想——知識(shí)卡片 將是一系列文章,文章的內(nèi)容是我閱讀《Java編程思想》這本書的心得體會(huì),那么我為什么要寫這一系列的文章呢?原因有一...
閱讀 1901·2021-11-15 11:46
閱讀 1101·2021-10-26 09:49
閱讀 1835·2021-10-14 09:42
閱讀 3393·2021-09-26 09:55
閱讀 844·2019-08-30 13:58
閱讀 1044·2019-08-29 16:40
閱讀 3480·2019-08-26 10:27
閱讀 616·2019-08-23 18:18