python前端学习-----Flask进阶
Flask進(jìn)階
- Flask請(qǐng)求
- Request請(qǐng)求對(duì)象
- `request.args.get()`
- 獲取表單提交的信息
- 請(qǐng)求鉤子
- Flask響應(yīng)
- json 數(shù)據(jù)格式
- Cookie 和 Session
- Cookie 對(duì)象
- Session對(duì)象
- 設(shè)置密鑰的方法
- 使用方法
- 自定義錯(cuò)誤頁面
Flask請(qǐng)求
Request請(qǐng)求對(duì)象
Request請(qǐng)求對(duì)象封裝了從客戶端發(fā)來的請(qǐng)求報(bào)文,可以從其中獲取請(qǐng)求報(bào)文中的所有數(shù)據(jù)。請(qǐng)求解析和響應(yīng)封裝實(shí)際上大部分是由Werk架ug完成的,Flask子類化Werkage的請(qǐng)求(Requestion)和響應(yīng)(Response)對(duì)象,并添加了和程序相關(guān)的特定功能。
request.args.get()
該方法可以獲取GET請(qǐng)求的參數(shù)。
如
可以的到其中的name 和age
獲取表單提交的信息
代碼:
from flask import Flask,request,render_templateapp = Flask(__name__)@app.route('/login1',methods =['GET','POST']) # def login1():#獲取提交方式if request.method =='POST':username = request.form['username']password = request.form['password']message = f':{username} {password}'return messagereturn render_template('login1.html')if __name__ == '__main__':app.run(debug = True)- 注意:路由‘/login1’和視圖函數(shù)login1以及渲染模板中的模板名login1.html要一致。
請(qǐng)求鉤子
有時(shí)需要對(duì)請(qǐng)求進(jìn)行預(yù)處理(pre processing)和后處理(posprocessing),這時(shí)可以使用Flask提供的請(qǐng)求鉤子(Hook),以注冊(cè)在請(qǐng)求處理的不同階段執(zhí)行的處理函數(shù)(或稱為回調(diào)函數(shù),即Callback)。
Flask的請(qǐng)求鉤子指的是在執(zhí)行視圖函數(shù)前后執(zhí)行的一些函數(shù),用戶可以在這些函數(shù)里面做一些操作。Flask利用裝飾器提供了4種鉤子函數(shù)。
- before_first_request:在處理第一個(gè)請(qǐng)求前執(zhí)行。
- before_request:在每次請(qǐng)求前執(zhí)行。
- after_request:每次請(qǐng)求之后調(diào)用,前提是沒有異常。
- teardown_request:每次請(qǐng)求之后調(diào)用,即使有異常。
Flask響應(yīng)
當(dāng)在瀏覽器中輸入一個(gè)網(wǎng)址時(shí),Flask會(huì)先判斷是否可以找到與請(qǐng)求URL相匹配的路由,如果沒有則返回404響應(yīng)。如果找到,則調(diào)用相應(yīng)的視圖函數(shù)。
視圖函數(shù)的返回值構(gòu)成了響應(yīng)報(bào)文的主體內(nèi)容。當(dāng)請(qǐng)求成功時(shí),返回狀態(tài)碼默認(rèn)為200。
視圖函數(shù)可以返回最多由3個(gè)元素組成的元組**;響應(yīng)主體、狀態(tài)碼和首部字段。**其中,首部字段可以為字典,或是兩元素元組組成的列表。
例如,最常見的響應(yīng)可以只包含主體內(nèi)容,示例代碼如下:
json 數(shù)據(jù)格式
一般使用jsonify()函數(shù)
from flask import Flask,jsonify @app.route('/index') def index():return jsonify(name ="小米",age ="18")Cookie 和 Session
Cookie 對(duì)象
Cookie指Web服務(wù)器為了存儲(chǔ)某些數(shù)據(jù)(如用戶信息)而保存在瀏覽器上的小型文本數(shù)據(jù)。瀏覽器會(huì)在一定時(shí)間內(nèi)保存它,并在下一次向同一個(gè)服務(wù)器發(fā)送請(qǐng)求時(shí)附帶這些數(shù)據(jù)。Cooks通常被用來進(jìn)行用戶會(huì)話管理。
簡單來說,就是存儲(chǔ)臨時(shí)數(shù)據(jù)
在Flask中利用Response類提供的set_cookie()方法
如:(省略了其余部分)
- 如果沒有設(shè)置Cookie的過期時(shí)間,則在關(guān)閉瀏覽器時(shí)會(huì)自動(dòng)清除
- 清除Cookie
Session對(duì)象
通俗理解,Session對(duì)象是對(duì)Cookie數(shù)據(jù)進(jìn)行加密存儲(chǔ)。
設(shè)置密鑰的方法
使用方法
- 寫入Session
.Session是一個(gè)字典對(duì)象,使用上訴方法設(shè)置后,就可以根據(jù)其對(duì)應(yīng)的真假來判斷
- 取值判斷
- 清除
自定義錯(cuò)誤頁面
from flask import Flask ,request ,render_templateapp = Flask(__name__) # 實(shí)例化Flask類 app.secret_key = "mrsoft" # 設(shè)置secret_key@app.route("/") def index():'''首頁'''return render_template('index.html')@app.errorhandler(404) def page_not_found(e):return render_template('404.html'), 404if __name__ == "__main__":app.run(debug=True) # 運(yùn)行程序其中404.html就是我們自己定義的錯(cuò)誤界面了
- FastAPI ------框架基礎(chǔ)
- Flask實(shí)戰(zhàn)----做了一個(gè)簡易版CSDN
總結(jié)
以上是生活随笔為你收集整理的python前端学习-----Flask进阶的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python前端学习-------Fla
- 下一篇: 理清Python网络编程