目录
2-1 基于return方式 生成的response对象 的修改操作
3-1 @before_request - 收到请求前执行绑定函数
3-2 @after_request - 每个请求后执行绑定函数,若请求异常不执行
3-3 @before_first_request - 第一次请求时触发函数执行
3-4 @teardown_request - 每个请求后执行绑定函数,若请求异常照常执行
3-5 @errorhandler - 根据错误状态码自定义返回
3-6 @template_global - 模板的标签使用
3-7 @template_filter - 模板过滤器使用
一、request 请求相关属性
- request.method - 请求的方式
- request.args - get方式提交的数据,即URL内包含的数据信息
- request.args.get('key', )
- request.form - Post方式提交的数据,字典形式存储获取
- request.values - CombinedMultiDict 字典形式存储,内容是
form
和args
。 可以使用values替代form和args。- request.cookies - 请求的cookies,类型是dict
- request.stream - 在可知的mimetype下,如果进来的表单数据无法解码,会没有任何改动的保存到这个·stream·以供使用。很多时候,当请求的数据转换为string时,使用
data
是最好的方式。这个stream只返回数据一次。- request.headers - 请求头,字典形式,结果以list形式返回
- request.data - 包含了请求的数据,并转换为字符串,除非是一个Flask无法处理的mimetype。
- 用户请求路径获取方式(例如 :
http://www.example.com/myapplication/page.html?x=y
)
- request.path - /page.html
- request.full_path
- request.script_root - /myapplication
- request.url - http://www.example.com/myapplication/page.html?x=y
- request.base_url - http://www.example.com/myapplication/page.html
- request.url_root - http://www.example.com/myapplication/
- request.host_url
- request.host
- request.files - MultiDict,带有通过POST或PUT请求上传的文件。
obj = request.files['the_file_name'] obj.save('/var/www/uploads/' + secure_filename(f.filename))
- request.environ - WSGI隐含的环境配置。
- request.is_xhr - 如果请求是发送到一个实际的模块,则该参数返回当前模块的名称。这是弃用的功能,使用
blueprints
替代。- request.blueprint - 蓝图名字
- request.endpoint - endpoint匹配请求,这个与
view_args
相结合,可是用于重构相同或修改URL。当匹配的时候发生异常,会返回None。- request.json - 如果
mimetype
是application/json
,这个参数将会解析JSON数据,如果不是则返回None。
可以使用这个替代get_json()方法。- request.max_content_length - 只读,返回
MAX_CONTENT_LENGTH
的配置键。- request.module - 如果请求是发送到一个实际的模块,则该参数返回当前模块的名称。这是弃用的功能,使用
blueprints
替代。1-1 基于 request 的 ip 获取