- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Are global variables thread-safe in Flask? How do I share data between requests?
(4 个回答)
Store large data or a service connection per Flask session
(1 个回答)
去年关闭。
类似于 this question ,我想在整个 Flask 应用程序(所有请求)之间共享一个变量。
我正在编译一个大数据文件(相当大的开销)并希望尽可能少地进行编译 - 将结果存储在一个变量中,以便以后可以访问。使用 flask.g
不会工作,因为它在请求之间被擦干净。
在 Reddit post六年前,Armin Ronacher(Flask 的创造者)说:
You can just attach it to the application object and access it via
flask.current_app.whatever_variable
.
current_app
或 app
)是否等效?
current_app
:
from flask import current_app
current_app.my_var = <<file>>
def create_app(config_filename):
app = Flask(__name__)
app.config.from_pyfile(config_filename)
app.my_var = <<file>>
...
return app
最佳答案
通常在我的项目中,我创建一个 Globals.py 来在我的程序的每个部分使用全局变量,如下所示:
from celery import Celery
from flask_babel import Babel
from flask_marshmallow import Marshmallow
from flask_socketio import SocketIO
from flask import json, Flask
app: Flask = None
marshmallow: Marshmallow = Marshmallow()
socket = SocketIO(async_mode="eventlet", json=json)
celery: Celery
babel = Babel()
current_user = None
def init_globals(currentApp):
global marshmallow
global app
global socket
global celery
global babel
app = currentApp
marshmallow.init_app(app)
babel.init_app(app)
socket.init_app(app)
celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
import Globals
app = Flask(__name__)
Globals.init_globals(app)
关于python - 将变量附加到应用程序与 Flask 中的 current_app 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60082525/
我正在尝试从蓝图(我将在模板中使用的函数)在 Jinja 环境中添加一个函数。 主.py app = Flask(__name__) app.register_blueprint(heysyni) M
最近,我开始使用 Flask 构建应用程序。它非常易于使用,但功能强大且使用起来很有趣。不幸的是,我在理解应用程序上下文的工作方式时遇到了问题。我知道 current_app、app_context
current_app 和 g 都是应用程序上下文变量,因此它们会随着每个请求加载和卸载,因此存储在它们上的任何数据都只能在同一个请求中使用. 我能看到的唯一区别是 g 在每个请求的开头都是空的,而
我正在使用 current_app.logger,当我尝试登录线程内部时,它显示“在应用程序上下文之外工作”。如何记录来自线程中运行的方法的消息? def background(): curr
这个问题在这里已经有了答案: Are global variables thread-safe in Flask? How do I share data between requests? (4 个
我尝试为 Flask 创建两个装饰器来装饰一个简单的函数。两个装饰器都需要访问 current_app 上的相同字段/属性。装饰函数也需要访问相同的属性。但我想测试这个字段是否已经存在并在任一装饰器中
我在我的 Flask 应用程序上看到了一个相当奇怪的行为:嵌套的 app_contexts 没有在我的测试套件上正常工作,因此 current_app localproxy 没有指向正确的应用程序。它
我正在编写可重复使用的应用程序。我想多次部署它。 这是 urls.py: urlpatterns = patterns('', (r'^carphotos/', include('webui.phot
我已经设置了 Sphinx 来记录我的 Flask 项目,但是,我遇到了这个错误: [$]>>> make html sphinx-build -b html -d build/doctrees -
我在使用 current_app.send_task 时遇到 Celery 队列路由问题 我有两个 worker (每个队列一个) python manage.py celery worker -E
我不敢相信这会这么难。我在网上评分试图找到解决方案,但仍然无法访问我的 Flask 应用程序的 root_path。更糟糕的是,它在一个文件中有效,而在另一个文件中却无效。这是我尝试过的: from
我想对以下功能进行单元测试: from flask import current_app def fuu(): current_app.logger.info('hello world')
我在运行 CentOS 7 的服务器上使用 Django 1.11 (Python/2.7.5) + Apache/2.4.6 + mod_wsgi/3.4 部署了一个应用程序。 页面工作正常,但登录
我并没有尝试在 View 函数中使用 celery.current_app,但是我有一个挂接到 after_task_publish 信号的函数,该信号使用它来更新状态发布任务后,它在 Flask V
好的,我已经尝试了我和谷歌所能想到的一切。我正在尝试在我的 Macbook Pro OSX 10.8.4 上的 virtualenv 下运行 django-celery。我在激活 virtualenv
我刚刚通过 Gitlab 将我的应用程序上传到生产服务器 (Centos7) 并进行了迁移,一切正常,这里的问题是,一旦我想通过浏览器访问,我就会在日志中收到此错误: File "/usr/lib/p
我刚刚将 Django 从 1.9 升级到 1.10。我在测试环境中运行 1.10 并解决了所有升级问题以确保一切正常。 但是,当我在我的实时网站上执行此操作并加载主页时,我收到以下错误 环境: Re
我的应用程序中有一些已弃用的自定义端点,以支持从旧 API 迁移到 Eve。我的自定义端点之一实现了一个端点,用于更新 MongoDB 数据库中的文档。与这些文档关联的集合具有在 settings.p
是的,我知道有很多关于与这个值错误相关的堆栈溢出的类似问题,我尝试了他们的所有解决方案,但由于我是 Django 和 python 的新手,我无法解决这个问题。 我有一个名为 my_backend 的
我是一名优秀的程序员,十分优秀!