GET/POST
- 使用get/post方法需要事先在函數(shù)中引入request
from flask import request
get:
- 使用場景:僅用于向服務(wù)器獲取數(shù)據(jù),沒有對服務(wù)器產(chǎn)生影響
- 參數(shù)在url中顯示,以?分隔跟在url之后
- 獲取參數(shù):request.args
#url = "www.baidu.com/?key=hello"
key = request.args.get('key')
post:
- 要對服務(wù)器產(chǎn)生影響,例如注冊登錄
- 參數(shù)以form data形式發(fā)送給服務(wù)器
- 獲取參數(shù):request.form
key = request.form.get('key')
-
注意:
? ?post請求一定得在表單中設(shè)置name屬性,才能從request獲取到值,并且視圖函數(shù)中需要設(shè)置請求方法,不然默認(rèn)為GET會拋出異常
g全局屬性
- 使用g屬性需要事先在函數(shù)中引入g模塊
from flask import g
#設(shè)置和調(diào)用
g.key = "hello"
- 一次請求的所有地方皆可使用,類似于設(shè)置全局屬性,設(shè)置的屬性只要是在當(dāng)前請求中,任意位置都可以通過g.param_name獲取
- 專門用于保存用戶數(shù)據(jù)
鉤子函數(shù)
- before_request
- 在請求之前執(zhí)行
- 在視圖函數(shù)之前執(zhí)行
- 只是一個裝飾器,用于設(shè)置函數(shù)
@before_request
def index():
function_content
- context_processor
- 上下文處理器應(yīng)該返回一個字典,字典的key會被模板當(dāng)做變量渲染
- 上下文處理器中返回的字典所有頁面都可用,例如在index函數(shù)中返回了{(lán)user:hello},則此數(shù)據(jù)在渲染的所有頁面皆可使用
@context_processor
def index():
function_content