Flask請求與響應
阿新 • • 發佈:2018-12-30
1.變數或物件
變數/物件 |
上下文 |
說明 |
current_app | 程式上下文 | 當前執行的程式例項 |
g(global的簡寫) | 程式上下文 | 處理請求時用作臨時儲存的物件,專門用來儲存使用者資料,每次請求都會重置,g物件在一次請求中的所有程式碼中都是可以使用的。 |
request | 請求上下文 | 請求物件,儲存了客戶端的所有的HTTP請求資訊 |
session | 請求上下文 | 使用者會話,用於儲存需要'記住'的會話資訊 |
2.請求鉤子函式
from flask imort Flask, g app = Flask(__name__) @app.route('/test/') def test(): return g.string #鉤子函式 #第一次請求, 一次性有效 @app.before_first_request def bf_first_request(): g.string = 'before_first_request' #每次請求前 @app.before_request def bf_request(): g.string = 'before_request'
函式 |
描述 |
---|---|
before_first_request | 第一次請求之前 |
before_request | 每次請求之前 |
after_request | 沒有異常情況下,每次請求之後 |
teardown_request | 每次請求之後,無論是否有異常,常用於關閉資料庫連線 |
3.檢視函式
帶引數的檢視函式如下
#帶引數的路由,不指定引數型別,預設是字串 @app.route('/hello/<username>') def hello(username): return 'hello %s !' % username #引數可以指定型別: int float path (/不再是分隔符) @app.route('/user/<int:uid>/') def user(uid): return '%d號使用者詳細資訊' % uid @app.route('/path/<path:p>/') def path(p): return p
總結說明
-
若指定引數,需要將引數外新增<>,且路由引數名稱要與檢視函式引數一致
-
引數可以指定型別,如:int、float、path,不指定預設為字串
-
路由中的最後的'/'最好還是加上
請求
@app.route('/request/') def req(): # 完整的請求URL # return request.url # 基本路由資訊,不包含get引數 #return request.base_url # 只包含主機和埠 #return request.host_url # 只包含裝飾器中的路由地址 #return request.path # 請求方法型別 #return request.method # 客戶端IP地址 #return request.remote_addr # 所有的請求引數(GET) #return request.args['page'] # 返回一個列表 # returen str(request.args.getlist('username')) # 請求頭資訊 return request.headers['User-Agent']