深入解析:Python Flask 里全局请求对象 g 的两大关键作用
在Flask中,`g`是全局请求对象。它包含与当前请求相关的信息,如请求的路径、查询参数、请求头、请求方法等。在Flask中,`g`可以在路由函数、装饰器和其他Flask功能中使用。 例如,你可以使用`g`来获取当前用户的ID,如下所示: ```python @app.route('/user/<user_id>') def show_user(user_id): user = User.query.get(g.user_id) return render_template('user.html', user=user) ``` 在这个例子中,`g.user_id`就是从路由参数中获取的用户ID。这样,你就可以在路由函数之外的地方使用这个ID了。 `g`还可以用来存储和共享数据。例如,你可以在路由函数中设置一些数据,然后在其他地方使用这些数据: ```python @app.route('/login') def login(): g.user = User.query.get(request.form['user_id']) return redirect(url_for('dashboard')) @app.route('/dashboard') def dashboard(): return render_template('dashboard.html', user=g.user) ``` 在这个例子中,当用户登录时,我们会在`g`中设置一个用户对象。然后,当用户访问仪表板页面时,我们就可以使用这个用户对象了。这样,你就可以在不重复查询数据库的情况下共享数据了。 ######[AI写代码神器 | 283点数解答 | 2023-11-08 00:53:49]
- Python代码:Flask结合数据库与饮食口味映射开发 (字节豆包 | 33点数解答 | 2025-05-12 22:13:16)150
- 易语言实现高并发 HTTP 操作:多线程、线程池与异步操作实战(字节豆包 | 849点数解答 | 2025-06-03 23:17:33)253
- Flask代理FastGPT API代码分析:问题剖析与全面改进建议 (DeepSeek | 713点数解答 | 2025-06-18 16:00:34)214
- 递归实现:将对象所有属性值转换为字符串!含代码示例(字节豆包 | 143点数解答 | 2024-11-08 10:25:12)376
- 递归实现:将对象所有属性值转换为字符串类型(字节豆包 | 142点数解答 | 2024-11-11 21:06:15)255
- 递归实现:将对象所有属性值转换为字符串,复杂嵌套也不怕!(阿里通义 | 467点数解答 | 2024-11-12 09:07:17)264
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)462
- Python Flask套接字访问问题:风险、成因与防范策略(阿里通义 | 402点数解答 | 2024-03-29 15:21:08)245
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)417
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)409
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)278
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)308