對于 Web 應用,與客戶端發送給服務器的數據交互至關重要。在 Flask 中由全局的 request 對象來提供這些信息。
如果要獲取當前的請求信息,需要導入從 `flask` 導入 `request`
```
from flask import request
```
request 相關屬性或方法,加粗需要經常使用。
| 屬性 | 含義 |
| --- | --- |
| **method** | 請求方法,比如:POST、GET、PUT、DELETE。 |
| **headers** | 請求頭,字典類型。 |
| **cookies** | 請求的cookies,類型是dict。 |
| **values** | CombinedMultiDict,內容是`form`和`args`。? 可以使用values替代form和args。 |
| **data** | 包含了請求的數據,并轉換為字符串,除非是一個Flask無法處理的mimetype。 |
| **files** | MultiDict,帶有通過POST或PUT請求上傳的文件。 |
| **get_json(force=False, silent=False, cache=True)** | 如果`mimetype`是`application/json`,直接獲取JSON數據 |
| json | 如果`mimetype`是`application/json`,這個參數將會解析JSON數據,如果不是則返回None。可以使用這個替代 get_json() 方法。 |
| form | 一個從 POST 和 PUT 請求解析的 MultiDict(一鍵多值字典)。 |
| args | MultiDict,要操作 URL (如 ?key=value )中提交的參數可以使用 args 屬性:`searchword = request.args.get('key', '') ` |
| path | 獲取當前的url路徑 |
| script_root | 當前url路徑的上一級路徑 |
| base_url | 獲取域名與請求文件路徑:http://www.dear521.com/index.html |
| url | 獲取完整路徑:http://www.dear521.com/index.html?id=1&type=3 |
| url_root | 獲取域名:http://www.dear521.com/ |
| environ | WSGI隱含的環境配置。 |
| stream | 在可知的 mimetype下,如果進來的表單數據無法解碼,會沒有任何改動的保存到這個 stream 以供使用。很多時候,當請求的數據轉換為string時,使用`data`是最好的方式。這個stream只返回數據一次。 |
| max_content_length | 只讀,返回`MAX_CONTENT_LENGTH`的配置鍵。 |
| blueprint | 藍圖名字。 |
| module | 如果請求是發送到一個實際的模塊,則該參數返回當前模塊的名稱。這是棄用的功能,使用`blueprints`替代。|
| endpoint | endpoint匹配請求,這個與`view_args`相結合,可是用于重構相同或修改URL。當匹配的時候發生異常,會返回None。 |
| routing_exception = None | 如果匹配URL失敗,這個異常將會/已經拋出作為請求處理的一部分。這通常用于`NotFound`異常或類似的情況。 |
| is_xhr | 如果請求是一個來自`JavaScript XMLHttpRequest`的觸發,則返回`True`,這個只工作在支持`X-Requested-With`頭的庫并且設置了`XMLHttpRequest`。 |
| 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。 |
|on_json_loading_failed(e)| |