hanson1025 发表于 2023-3-6 13:05

python加sanic怎么使用全局变量

请问一下,我用python3.10配合sanic写的服务器,在全局函数里面获取了一个全局变量access_token,在函数phone里面为什么获取不出来啊?

dusagu 发表于 2023-3-6 13:31

创建一个名为`config.py`的模块,将需要共享的全局变量定义在其中:

```python
# config.py
CONFIG_VAR = 'some value'
```

然后,在需要使用该全局变量的地方引入模块:

```python
#main.py
from sanic import Sanic
from config import CONFIG_VAR

app = Sanic()

@app.route('/')
async def index(request):
    return f'The config value is {CONFIG_VAR}'

if __name__ == '__main__':
    app.run()
```

在这个示例中,Sanic应用程序定义在`main.py`文件中,引入了全局变量`CONFIG_VAR`。在路由处理函数中,可以直接使用该变量。由于该变量定义在一个单独的模块中,因此在不同的请求中,可以共享相同的值。

需要注意的是,全局变量容易引起线程安全问题,因此建议仅在必要时使用,并尽量避免对其进行修改。

saszznz 发表于 2023-3-6 13:58

kamisora 发表于 2023-3-6 15:26

文档不是有应用上下文吗,用上下文就好了

choujie1689 发表于 2023-3-6 17:14

加到配置文件就行了,这样也比较规范,如楼上config.py

hanson1025 发表于 2023-3-29 10:13

dusagu 发表于 2023-3-6 13:31
创建一个名为`config.py`的模块,将需要共享的全局变量定义在其中:

```python


谢谢,那如果config_var这个变量是小程序的access_token每个小时都要重新取值的呢!?那是不是同时运行两个py文件就行了啊
页: [1]
查看完整版本: python加sanic怎么使用全局变量