Flask引數獲取與響應
flask響應:
1、響應字串。
這個在前面已經說明過,但是需要指出的是,其實每次檢視函式在響應時還可以附帶狀態碼。比如狀態碼為200,表示請求已經被成功處理。狀態碼為400,表示請求無效。
-
@app.route('/')
-
def index():
-
return 'bad request',400
2、響應Response物件
利用make_reponse()函式接受字串和錯誤碼,返回一個Response物件,利用這種方法,不但可以成功處理請求,還可以進一步設定響應,如設定cookie等等:
-
from flask import make_response
-
@app.route('/')
-
def index():
-
response=make_response('set cookies!')
-
response.set_cookie('hyman','123')
-
return response
3、返回重定向型別redirect
重定向型別指輸入一個URL後,自動跳轉到另一個URL所在的地址
-
from flask import redirect
-
@app.route('/')
-
def index():
-
return redirect('http://www.baidu.com')
在瀏覽器中輸入‘localhost:5000’之後,直接跳轉到百度介面
4、返回處理錯誤碼
利用abort返回處理錯誤
-
from flask import abort
-
@app.route('/')
-
def index():
-
abort(404)
引數獲取
1、request.form.get("key", type=str, default=None) 獲取表單資料
2、request.args.get("key") 獲取get請求引數
3、request.values.get("key") 獲取所有引數。推薦使用request.values.get()
4、request.get_json()獲取解析json資料格式,然後直接引用a['b']
請求鉤子
- before_first_request:在處理第一個請求前執行。
- before_request:在每次請求前執行。
- after_request:如果沒有未處理的異常丟擲,在每次請求後執行。
- teardown_request:在每次請求後執行,即使有未處理的異常丟擲。
例如:
@before_first_request
def before_first_request():
return
異常捕獲
abort 方法
丟擲一個給定狀態程式碼的 HTTPException,例如想要用一個頁面未找到異常來終止請求,你可以呼叫 abort(404)。
引數: code – HTTP的錯誤狀態碼
abort(404)
abort(500)
只能丟擲HTTP協議的狀態碼
errorhandler 裝飾器
註冊一個錯誤處理程式,當程式丟擲指定錯誤狀態碼的時候,就會呼叫該裝飾器所裝飾的方法
引數:code_or_exception – HTTP的錯誤狀態碼或指定異常
例如統一處理狀態碼為500的錯誤給使用者友好的提示:
@app.errorhandler(500)
def internal_server_error(e):
return '伺服器搬家了'