1. 程式人生 > >Flask引數獲取與響應

Flask引數獲取與響應

flask響應:

1、響應字串。

        這個在前面已經說明過,但是需要指出的是,其實每次檢視函式在響應時還可以附帶狀態碼。比如狀態碼為200,表示請求已經被成功處理。狀態碼為400,表示請求無效。

  1. @app.route('/')

  2. def index():

  3. return 'bad request',400

2、響應Response物件

        利用make_reponse()函式接受字串和錯誤碼,返回一個Response物件,利用這種方法,不但可以成功處理請求,還可以進一步設定響應,如設定cookie等等:

  1. from flask import make_response

  2. @app.route('/')

  3. def index():

  4. response=make_response('set cookies!')

  5. response.set_cookie('hyman','123')

  6. return response


3、返回重定向型別redirect

重定向型別指輸入一個URL後,自動跳轉到另一個URL所在的地址

  1. from flask import redirect

  2. @app.route('/')

  3. def index():

  4. return redirect('http://www.baidu.com')

在瀏覽器中輸入‘localhost:5000’之後,直接跳轉到百度介面

4、返回處理錯誤碼

利用abort返回處理錯誤

  1. from flask import abort

  2. @app.route('/')

  3. def index():

  4. 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 '伺服器搬家了'