1. 程式人生 > >關於Flask的request屬性

關於Flask的request屬性

前言

在進行Flask開發中,前端需要傳送不同的請求及各種帶引數的方式,比如GET方法在URL後面帶引數和POST在BODY帶引數,有時候又是POST的表單提交方式,這個時候就需要從request提取引數。這篇文章是總結如何使用request

關於request

在Flask的官方文件中是這樣介紹request的:

對於 Web 應用,與客戶端傳送給伺服器的資料互動至關重要。在 Flask 中由全域性的 request 物件來提供這些資訊。

從Flask模組匯入request

from flask import request
  • 1

request的屬性

下面是request可使用的屬性,其中黑體是比較常用的。

  • form 
    一個從POST和PUT請求解析的 MultiDict(一鍵多值字典)。

  • args
    MultiDict,要操作 URL (如 ?key=value )中提交的引數可以使用 args 屬性:

searchword = request.args.get('key', '')
  • 1
  • values 
    CombinedMultiDict,內容是formargs。 
    可以使用values替代form和args。

  • cookies 
    顧名思義,請求的cookies,型別是dict。

  • stream 
    在可知的mimetype下,如果進來的表單資料無法解碼,會沒有任何改動的儲存到這個·stream·以供使用。很多時候,當請求的資料轉換為string時,使用data

    是最好的方式。這個stream只返回資料一次。

  • headers 
    請求頭,字典型別。

  • data 
    包含了請求的資料,並轉換為字串,除非是一個Flask無法處理的mimetype。

  • files 
    MultiDict,帶有通過POST或PUT請求上傳的檔案。

  • environ 
    WSGI隱含的環境配置。

  • method 
    請求方法,比如POST、GET。

  • path

  • script_root
  • url
  • base_url
  • url_root 
    如果使用者請求如下URL: 
    http://www.example.com/myapplication/page.html?x=y 
    以上的引數內容如下:
  • is_xhr 
    如果請求是一個來自JavaScript XMLHttpRequest

    的觸發,則返回True,這個只工作在支援X-Requested-With頭的庫並且設定了XMLHttpRequest

  • blurprint 
    藍本名字。

  • endpoint 
    endpoint匹配請求,這個與view_args相結合,可是用於重構相同或修改URL。當匹配的時候發生異常,會返回None。

  • get_json(force=False, silent=False, cache=True)

  • json 
    如果mimetypeapplication/json,這個引數將會解析JSON資料,如果不是則返回None。 
    可以使用這個替代get_json()方法。

  • max_content_length 
    只讀,返回MAX_CONTENT_LENGTH的配置鍵。

  • module 
    如果請求是傳送到一個實際的模組,則該引數返回當前模組的名稱。這是棄用的功能,使用blueprints替代。

  • on_json_loading_failed(e)
  • routing_exception = None 
    如果匹配URL失敗,這個異常將會/已經丟擲作為請求處理的一部分。這通常用於NotFound異常或類似的情況。

  • url_rule = None 
    內部規則匹配請求的URL。這可用於在URL之前/之後檢查方法是否允許(request.url_rule.methods) 等等。 
    預設情況下,在處理請求函式中寫下 
    print('request.url_rule.methods', request.url_rule.methods) 
    會列印:

    request.url_rule.methods {‘GET’, ‘OPTIONS’, ‘HEAD’}

  • view_args = None 
    一個匹配請求的view引數的字典,當匹配的時候發生異常,會返回None。