1. 应用和请求上下文
应用上下文
- current_app:当前应用的应用实例
- g:处理请求时用作临时存储的对象,每次请求都会重设这个变量
获取应用上下文的方法是在应用实例上调用app.app_context()
请求上下文
- request:请求对象,封装了客户端发出的HTTP请求中的内容
- session:用户会话,值为一个字典,存储请求之间需要“记住”的值
请求分派
- Flask使用app.route装饰器或者作用相同的app.add_url_rule()仿佛构建映射
请求对象
属性或方法 | 说明 |
---|
form | 一个字典,存储请求提交的所有表单字段 |
args | 一个字典,存储通过URL查询字符串传递的所有参数 |
values | 一个字典,form和args的合集 |
cookies | 一个字典,存储请求的所有cookies |
headers | 一个字典,存储请求的所有HTTP首部 |
files | 一个字典,存储请求上传的所有文件 |
get_data() | 返回请求主体缓冲的数据 |
get_json() | 返回一个python字典,包含解析请求主体后得到的JSON |
blueprint | 处理请求的Flask蓝本名称 |
endpoint | 返回请求的Flask端点的名称;Flask把视图函数的名称用作路由端点的名称 |
method | HTTP请求方法,例如GET或POST |
scheme | URL方案(http或https) |
is_secure() | 通过安全的连接(HTTPS)发送请求时返回True |
host | 请求定义的主机名,如果客户端定义了端口号,还包括端口号 |
path | URL的路径部分 |
query_string | URL的查询字符串部分,返回原始二进制值 |
full_path | URL的路径和查询字符串部分 |
url | 客户端请求的完整URL |
base_url | 同url,但没有查询字符串部分 |
remote_addr | 客户端的IP地址 |
environ | 请求的原始WSGI环境字典 |
请求钩子
- before_request:注册一个函数,在每次请求之前运行。
- before_first_request:注册一个函数,只在处理第一个请求之前运行。可以通过这个钩子添加服务器初始化任务。
- after_request:注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行。
- teardown_request:注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行。
- errorhandler:发生一些异常时,比如 HTTP 404、HTTP 500 错误,或者抛出异常,就会自动调用该钩子函数。
响应
属性或方法 | 说明 |
---|
status_code | HTTP数字状态码 |
headers | 一个类似字典的对象,包含随响应发送的所有首部 |
set_cookie() | 为响应添加一个cookie |
delete_cookie() | 删除一个cookie |
content_length | 响应主体的长度 |
content_type | 响应主体的媒体类型 |
set_data | 使用字符串或字节值设定响应 |
get_data | 获取响应主体 |
- redirect():重定向
- abort():用于处理错误