gpt4 book ai didi

python - Flask:创建在多个请求中保留的对象

转载 作者:太空狗 更新时间:2023-10-30 01:01:36 26 4
gpt4 key购买 nike

我已经能够创建根据此链接的每个请求创建的对象:http://flask.pocoo.org/docs/appcontext/#locality-of-the-context .

我实际上是在创建一个基于 http://blog.miguelgrinberg.com/post/designing-a-restful-api-using-flask-restful 的 API .

我希望能够一次加载一个对象,然后让它返回一个处理过的响应,而不是在每次请求时都加载。该对象不是数据库,只需要对一个大文件进行 unpickling。

我已经查看了文档,但我仍然对整个 Flask 两种状态感到困惑。

最佳答案

Flask 上下文只适用于每个请求。使用全局模块来存储您只想加载一次的数据。

你可以只在启动时加载数据,作为一个全局的:

some_global_name = load_data_from_pickle()

支持多进程的 WSGI 服务器要么派生进程,要么根据需要启动一个新的 Python 解释器。 fork 时,全局变量被复制到子进程。

您还可以使用 before_first_request() Hook 将该数据加载到您的进程中;仅当进程必须处理实际请求时才会调用此方法。这将在进程 fork 之后,为您的子进程提供独特的数据:

@app.before_first_request
def load_global_data():
global some_global_name
some_global_name = load_data_from_pickle()

关于python - Flask:创建在多个请求中保留的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24251307/

26 4 0
文章推荐: python - 调用 celery 任务挂起延迟和 apply_async
文章推荐: c# - MVC - 将动态添加的控件绑定(bind)到模型中的 List
文章推荐: c# - 来自 IEnumerable 的 GenericTypeDefinitionName