在烧瓶中的路线和主要之间使用共享变量
Posted
技术标签:
【中文标题】在烧瓶中的路线和主要之间使用共享变量【英文标题】:Using a shared variable between routes and main in flask 【发布时间】:2020-04-08 01:12:33 【问题描述】:我有一个 python 烧瓶服务器。在我的脚本的main
中,我从用户那里得到一个变量,它定义了我的服务器的模式。我想在main
中设置这个变量(只是write)并在我的控制器中使用它(只是read)。我目前正在使用os.environ
,但我正在寻找更优雅的使用方式。
我用谷歌搜索并尝试了以下选项:
flask.g
:每次请求都会重置;所以,当它被设置在其他地方时,我不能在控制器中使用它。
flask.session
:在请求上下文之外无法访问,我无法在 main 中设置它。
Flask-Session
:像第二项一样,在main
中设置不了。
【问题讨论】:
也许你应该把它保存在文件或数据库中。 是的@furas,你是对的。但如果可能的话,我正在寻找一种通过flask
方法和对象来实现它的方法。
对我来说flask/django/php
方法是将数据保存在数据库中。如果main
无权访问flask
,则数据库或文件可以作为解决方案。但现在我想知道如果你设置app.variable = value
或烧瓶如何使用app.config
我会尝试你的建议@furas 并让你知道结果。谢谢。
亲爱的@furas,app.config["mode"]
和 app.mode
都工作了。你能把它添加为答案吗?
【参考方案1】:
在main
中,您使用app.run()
,所以app
在main
中可用。它也应该在所有功能中始终可用,因此您可以尝试使用
app.variable = value
但是烧瓶也有
app.config
保留任何设置。见文档:Configuration Handling
【讨论】:
以上是关于在烧瓶中的路线和主要之间使用共享变量的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Vuex(Nuxt) 中的 SASS 和 Javascript 之间共享变量?