【发布时间】:2023-03-22 09:12:01
【问题描述】:
我一直在使用 Django,Django 在运行时将请求对象传递给视图。看起来(乍一看)在 Flask 中应用程序拥有请求并且它被导入(好像它是一个静态资源)。我不明白这一点,我只是想把我的大脑包裹在 WSGI 和 Flask 等周围。感谢任何帮助。
【问题讨论】:
我一直在使用 Django,Django 在运行时将请求对象传递给视图。看起来(乍一看)在 Flask 中应用程序拥有请求并且它被导入(好像它是一个静态资源)。我不明白这一点,我只是想把我的大脑包裹在 WSGI 和 Flask 等周围。感谢任何帮助。
【问题讨论】:
在 Flask 中,请求是一个线程安全的全局变量,所以你实际上是导入它:
from flask import request
我不确定这个特性是否与 WSGI 相关,因为其他 WSGI 微框架确实将请求作为视图函数参数传递。 “全局”请求对象是 Flask 的一个特性。 Flask 还鼓励将对单个请求有效的用户数据存储在名为 flask.g 的类似对象中:
共享对一个人有效的数据 仅从一个功能请求 另外,全局变量不好 足够了,因为它会闯入 线程环境。烧瓶提供 你有一个特殊的对象,可以确保 它仅对活动有效 请求,这将返回不同的 每个请求的值。在一个 简而言之:它做正确的事, 就像它对请求和会话所做的那样。
【讨论】: