以下是 Flask 请求上下文的一些关键特点和作用:
1. 请求对象 (request): 请求上下文包含了一个 request 对象,它提供了对当前请求的访问。你可以从 request 对象中获取请求的参数、表单数据、文件上传等信息。
from flask import request
@app.route('/example')
def example():
# 获取请求参数
param_value = request.args.get('param_name')
# 获取表单数据
form_data = request.form['key']
# 获取上传的文件
uploaded_file = request.files['file']
# ...
2. 会话对象 (session): 如果你在应用中启用了会话支持,请求上下文也包含了一个 session 对象,用于存储和访问会话数据。
from flask import session
@app.route('/login', methods=['POST'])
def login():
# 在会话中存储用户信息
session['user_id'] = get_user_id()
# ...
3. 全局变量 (g): 请求上下文中的 g 对象是一个用于在整个请求生命周期内共享状态的空间。
from flask import g
@app.before_request
def before_request():
# 在 g 对象中存储信息
g.user = get_current_user()
4. 应用上下文 (current_app): 请求上下文中可以访问当前 Flask 应用实例,即 current_app 对象。
from flask import current_app
@app.route('/')
def home():
# 访问当前应用实例
app_name = current_app.name
5. 推送和弹出: 请求上下文通过 app.test_request_context() 或在 Flask 视图函数中创建,然后通过 with 语句推送到上下文栈中。请求处理结束后,上下文会自动弹出。
with app.test_request_context('/'):
# 在这里执行与请求相关的任务
print(request.path)
总的来说,Flask 请求上下文是在请求处理期间提供访问请求相关信息的关键机制,使得你能够方便地处理和操作与请求相关的数据。
转载请注明出处:http://www.zyzy.cn/article/detail/7330/Flask