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

【Flask】關於Flask的request屬性

loading found app exception imp thead 支持 combined 方式

https://blog.csdn.net/yannanxiu/article/details/53116652

前言

在進行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
    以上的參數內容如下:
名稱內容
path /page.html
script_root /myapplication
base_url http://www.example.com/myapplication/page.html
url http://www.example.com/myapplication/page.html?x=y
url_root http://www.example.com/myapplication/
    • is_xhr
      如果請求是一個來自JavaScript XMLHttpRequest的觸發,則返回True,這個只工作在支持X-Requested-With頭的庫並且設置了XMLHttpRequest

    • blueprint
      藍本名字。

    • 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。

【Flask】關於Flask的request屬性