flask 创建全局对象
时间: 2023-05-30 19:03:04 浏览: 86
在 Flask 中,可以使用 `app.context_processor()` 装饰器来创建全局对象,该装饰器可以用于注册一个函数,该函数将在每个请求处理之前执行,并将返回值添加到 Flask 应用的上下文中。
例如,以下代码将创建一个名为 `global_variable` 的全局变量,并将其添加到 Flask 应用中:
```python
from flask import Flask, g
app = Flask(__name__)
@app.context_processor
def inject_global_variable():
return dict(global_variable='Hello, World!')
@app.route('/')
def hello():
return g.global_variable
```
在这个例子中,`inject_global_variable` 函数返回一个字典,其中包含一个名为 `global_variable` 的键和它的值。这个函数被 `app.context_processor` 装饰器注册,并在每个请求之前执行。在 Flask 应用的上下文环境中,`g` 对象用于存储全局变量。在 `/` 路由处理函数中,我们可以通过 `g.global_variable` 访问全局变量,并将其作为响应发送给客户端。
需要注意的是,`app.context_processor` 注册的函数只能返回字典类型的值,因为 Flask 在处理请求时会将返回值中的所有键-值对添加到应用的上下文环境中。如果需要向上下文中添加其他类型的对象,可以使用 Flask 中的 `app.before_request` 或 `app.after_request` 装饰器来实现。