1.安裝
pip install Flask
2.從hello world開始
# coding=utf-8
from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9000)
3.配置管理
(1)通過config類添加配置信息
app=Flask(__name__)
app.config['DEBUG']=True
app.config是flask.config.Config類的實(shí)例,繼承內(nèi)置結(jié)構(gòu)dict
(2)導(dǎo)入配置文件方法
1. 模塊對(duì)象導(dǎo)入
import settings
app.config.from_object(settings)
2.通過文件名字加載
app.config.from_pyfile('settings.py',silent=True)
默認(rèn)當(dāng)配置文件不存在時(shí)會(huì)拋出異常,使用silent=True的時(shí)候只是返 回False宗挥,但不會(huì) 拋出異常
3.通過環(huán)境變量加載墓塌。這種方式依然支持silent需五,獲得路徑后其實(shí)還是使用from_pyfile的方式加載
app.config.from_envvar('SETTINGS')
4.調(diào)試模式护桦,開啟可自動(dòng)加載代碼
(1)直接在應(yīng)用對(duì)象上設(shè)置
app.debug=True
app.run()
(2)作為run的參數(shù)傳入
app.run(debug=True)
(3)werkzeug-0.11 PIN碼身份驗(yàn)證廊宪,在調(diào)試模式下使用浓瞪,可保護(hù)調(diào)試環(huán)境懈玻。默認(rèn)啟動(dòng)會(huì)分配pin code,當(dāng)程序異常時(shí)瀏覽器會(huì)彈出要求輸入PIN值的輸入框乾颁。也可指定PIN碼的值涂乌。
WERKZEUG_DEBUG_PIN=123 python debug.py
5.動(dòng)態(tài)URL規(guī)則
(1)指定自路徑
@app.route('/item/<id>/')
def item(id):
return 'Item:{}'.format(id)
尖括號(hào)中的內(nèi)容是動(dòng)態(tài)的,凡是匹配到/item前綴的URL都被映射到這個(gè)路由上英岭,在內(nèi)部id作為參數(shù)獲取湾盒。未指定時(shí)<variable_name>,默認(rèn)類型為字符串。如需指定可標(biāo)記為<converter:variable_name>格式诅妹》9矗可接受類型有:string(不接受斜杠)、 int吭狡、 float尖殃、 path(接受斜杠)、 uuid划煮、any(可指定多種路徑送丰,但需要參入?yún)?shù)。
@app.route('/<any(a,b):page_name>/')
訪問/a/和訪問/b/都符合這個(gè)規(guī)則弛秋,/a/對(duì)應(yīng)的page_name就是a
(2)不定制子路徑
/computer/器躏?name=macbook這樣就可通過request.args.get('name')獲取name值。如使用POST方法蟹略,表單參數(shù)通過request.form.get('name')獲得
6.自定義URL轉(zhuǎn)換器
通過繼承werkzeug.routing.BaseConverter類邀桑,重寫父類中的init(),to_python(),to_url()方法
7.HTTP方法
(1)HTTP有多個(gè)訪問URL方法,默認(rèn)情況下科乎,路由只回應(yīng)GET請(qǐng)求,但是通過app.route裝飾器傳遞methods參數(shù)可以改變這個(gè)行為:
@app.route('/login', methods=['GET','POST'])
@app.route('/j/item/<id>', methods=['DELETE', 'POST'])
(2)HTTP方法和使用場(chǎng)景贼急。
GET:獲取資源茅茂,GET操作應(yīng)該是冪等的捏萍。
HEAD:想要獲取信息,但是只關(guān)心消息頭空闲。應(yīng)用應(yīng)該像處理GET請(qǐng)求一樣來處理它令杈,但是不返回實(shí)際內(nèi)容。
POST:創(chuàng)建一個(gè)新的資源碴倾。
PUT:完整地替換資源或者創(chuàng)建資源逗噩。PUT操作雖然有副作用,但應(yīng)該是冪等的跌榔。
DELETE:刪除資源异雁。DELETE操作有副作用,但也是冪等的僧须。
OPTIONS:獲取資源支持的所有HTTP方法纲刀。
PATCH:局部更新,修改某個(gè)已有的資源担平。
注:冪等表示在相同的數(shù)據(jù)和參數(shù)下示绊,執(zhí)行一次或多次產(chǎn)生的效果是一樣的。
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者