在烧瓶中的路线和主要之间使用共享变量

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(),所以appmain 中可用。它也应该在所有功能中始终可用,因此您可以尝试使用

app.variable = value

但是烧瓶也有

app.config

保留任何设置。见文档:Configuration Handling

【讨论】:

以上是关于在烧瓶中的路线和主要之间使用共享变量的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Vuex(Nuxt) 中的 SASS 和 Javascript 之间共享变量?

如何在 React-Router 中的路由之间共享状态?

哪些变量是共享的,而不是在 python 中的进程之间共享?

在 angular.js 中的控制器之间共享变量

如何在不同文件中的史诗之间共享变量?

如何使用 extern 在源文件之间共享变量?