python flask 创建全局变量
在 Flask 中,全局变量通常被用来存储在整个应用程序中共享的数据,比如数据库连接、配置信息等。在 Flask 中创建全局变量可以通过 app.config
或者 app.before_first_request
这两种方式来实现。在本文中,我将详细介绍如何在 Flask 应用中创建全局变量。
使用 app.config 创建全局变量
在 Flask 中,我们可以使用 app.config
来配置全局变量。app.config
是一个字典,我们可以在其中设置一些全局配置参数,在整个应用中都可以访问到。
下面是一个使用 app.config
创建全局变量的示例代码:
from flask import Flask
app = Flask(__name__)
# 设置全局变量
app.config['MY_GLOBAL_VAR'] = 'Hello, World!'
@app.route('/')
def home():
global_var = app.config.get('MY_GLOBAL_VAR')
return f'The global variable is: {global_var}'
if __name__ == '__main__':
app.run()
在上面的示例中,我们首先创建一个 Flask 应用 app
,然后在 app.config
中设置了一个全局变量 MY_GLOBAL_VAR
,其值为 'Hello, World!'
。在 /
路由中通过 app.config.get()
方法获取这个全局变量,然后将其返回给用户。
我们运行这个示例代码后,在浏览器中访问 http://127.0.0.1:5000/
,将会看到输出为 The global variable is: Hello, World!
。
使用 app.before_first_request 创建全局变量
除了使用 app.config
外,我们还可以使用 app.before_first_request
来在第一次请求处理之前创建全局变量。app.before_first_request
装饰器可以在第一次请求处理之前运行指定函数,这样我们就可以在其中进行一些初始化工作。
下面是一个使用 app.before_first_request
创建全局变量的示例代码:
from flask import Flask
app = Flask(__name__)
def create_global_var():
app.my_global_var = 'Hello, Flask!'
@app.before_first_request
def before_first_request():
create_global_var()
@app.route('/')
def home():
global_var = app.my_global_var
return f'The global variable is: {global_var}'
if __name__ == '__main__':
app.run()
在上面的示例中,我们定义了一个函数 create_global_var()
来设置全局变量 my_global_var
的值为 'Hello, Flask!'
。然后我们使用 app.before_first_request
装饰器来在第一次请求处理之前运行这个函数,从而创建全局变量。
当我们运行这个示例代码后,在浏览器中访问 http://127.0.0.1:5000/
,将会看到输出为 The global variable is: Hello, Flask!
。
总结
在 Flask 中创建全局变量可以通过 app.config
或者 app.before_first_request
这两种方式来实现。使用 app.config
可以方便地存储全局配置参数,在整个应用中都可以访问到;而使用 app.before_first_request
可以在第一次请求处理之前运行指定函数,在其中设置全局变量。