首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django中使一个大变量成为全局变量?

如何在Django中使一个大变量成为全局变量?
EN

Stack Overflow用户
提问于 2018-01-12 09:22:29
回答 1查看 42关注 0票数 0

我正在开发一个简单的web应用程序,它使用一个中等大的NLP模型,这对所有用户都是一样的,理想情况下,我希望从每天生成的新模型文件中重新加载模型。

有没有办法使存储此模型的变量成为全局变量?每次用户使用它时,从文件中加载它将非常慢,并且它似乎太大(~1 1GB),无法放入会话中。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 09:53:59

它可以是模块中的顶级变量,然后其他代码可以直接import它。

如果需要每天刷新,则将其封装在一个存取器函数中:

代码语言:javascript
复制
# data_manager.py

from datetime import datetime, timedelta
data = None
last_load_time = None

def get_data():
    global data
    global last_load_time
    if last_load_time is None or last_load_time + timedelta(hours=24) < datetime.now():
        data = some_expensive_function()
        last_load_time = datetime.now()
    return data

然后其他模块就可以直接调用get_data()了。只要其他模块导入了数据,数据就会一直加载到模块中;通常情况下,这是The服务器工作进程的生命周期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48218254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档