对于 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)| |