当前位置: 首页 > 面试题库 >

如何在Flask中共享全局应用程序对象?

汝天宇
2023-03-14
问题内容

我正在使用flask,并尝试执行以下操作。

我已经定义了一个main.py文件,通过它我可以运行我的应用程序,即python main.py

from flask import Flask
from view import tags

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

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

我定义了一个名为view的程序包,在其中将声明不同的view模块,每个模块都有自己的路由。view.tags.py

from flask import Flask
app = Flask(__name__)

@app.route('/e')
def hello_world2():
    return 'Hello World!'

因此,我需要在main.py中具有用于运行服务器的全局应用程序对象,以及在包的视图类中用于注册路由的全局对象。那么,如何创建全局应用程序对象并在所有类之间共享呢?


问题答案:

可以从flask导入current_app。它存储对全局应用程序对象的引用。

from flask import current_app as app

def home():
    return render_template('base.html', name=app.name)


 类似资料:
  • 我是一个新的React Native,我正在尝试改变一个位于一个屏幕中的类组件中的算术函数的状态,然后在全局共享它,以便在不同的屏幕中使用它,并且可能改变它,有哪些方法可以做到这一点?

  • 我有一个Flask应用程序在Gunicorn下运行,使用同步工作进程类型和20个工作进程。该应用程序在启动时读取大量数据,这需要时间和内存。更糟糕的是,每个进程都加载自己的副本,这会导致它花费更长的时间,占用20倍的内存。数据是静态的,不会更改。我想加载一次,让所有20名员工共享。 如果我使用设置,它只加载在一个线程中,并且最初只需要1X内存,但是一旦请求开始进来,它似乎会变成20X。我需要快速随

  • 问题内容: 我一次运行2个单独的Java应用程序。(两个单独的javaw.exe)在它们运行时,我需要在它们之间共享一个对象。 没有永久存储的最简单方法是什么? 问题答案: 对象及其实例变量可以在Java程序的线程之间共享,这是非常简单的任务。 如果您需要在两个程序之间共享对象(例如它的对象)而没有数据存储,那么下一个选择将是使用RMI套接字通信或Java消息传递服务。

  • 问题内容: 我正在尝试在应用程序中保存缓存字典。 据我了解,应使用Application Context,尤其是flask.g对象。 设定: 现在,如果我这样做: 它打印。 继续执行以下操作: 我不明白,文档也完全没有帮助。如果我正确阅读它们,状态应该已经保留。 我的另一个想法是简单地使用模块范围的变量: 但是似乎这些随着每个请求而重置。 如何正确做到这一点? 编辑:flask10.1 问题答案:

  • 我正在使用Java、Tomcat和泽西创建一个REST Web应用程序。我正在使用注释(没有web.xml!)我最终使用了这个应用程序配置: 这是我的问题。Web容器有一个全局应用程序对象。我正在将其从应用程序构造函数保存到静态字段中。稍后我需要从其他类访问它(它包含全局配置、全局数据库连接工厂,可能还有其他东西。) 我这样做对吗?我怀疑一定有更好的方法:在处理注释时保存对应用程序的引用。但我不知

  • 问题内容: 在我的应用中,公共对象的状态通过发出请求来更改,而响应取决于状态。 如果我在开发服务器上运行此程序,则期望得到1、2、3等。如果同时从100个不同的客户发出请求,会出问题吗?预期结果将是100个不同的客户端各自看到一个从1到100的唯一数字。或者会发生以下情况: 客户端1查询。增加1。 在执行return语句之前,线程将切换到客户端2。再次递增。 线程切换回客户端1,并向客户端返回数字