创建应用程序后更改 Flask 配置
Change Flask config after app creation
我正在使用 Livereload + Flask + Flask SOcketIO + Flask 脚本。
问题是 SocketIO 需要一个 gevent-socketio 服务器。这不是所有的 livereload。不要误会我的意思,我不想解决这个问题。我只 运行 livereload 做一些 css/sass/js 工作所以没关系。
但是每次客户端尝试连接到 socketIO 服务器时抛出的异常让我很困扰。所以我想我可以禁用 javascript,但我的应用程序主要依赖 angular 来异步呈现指令,因此页面上没有标签供我切换样式。然后我意识到我可以写一个配置 属性 所以当我加载页面时 Jinja2 将它作为一个 javascript 变量提供并且我不会加载特定的 socket-io js 文件以防它被设置为 False.I 已经试过了。
设置为 config.py:
class Config:
LIVERELOAD = False
我运行 带有 FLask-Script 的 livereload 服务器
class liveReloadServer(Command):
"""prints hello world"""
def run(self):
with app.app_context():
server = Server(app.wsgi_app)
Config.LIVERELOAD = 'True'
server.serve(port=8080)
将配置 属性 传递给 javascript 端
var LIVERELOAD = "{{ config['LIVERELOAD'] }}";
但这不起作用(LIVERELOAD 始终显示 True)因为我在 Config class 已经插入 Flask 应用程序 object.Is 之后设置 属性 另一种方式?
您需要设置 Flask 应用的配置,它与您创建的任何自定义对象无关。
app.config['LIVERELOAD'] = True
我正在使用 Livereload + Flask + Flask SOcketIO + Flask 脚本。 问题是 SocketIO 需要一个 gevent-socketio 服务器。这不是所有的 livereload。不要误会我的意思,我不想解决这个问题。我只 运行 livereload 做一些 css/sass/js 工作所以没关系。
但是每次客户端尝试连接到 socketIO 服务器时抛出的异常让我很困扰。所以我想我可以禁用 javascript,但我的应用程序主要依赖 angular 来异步呈现指令,因此页面上没有标签供我切换样式。然后我意识到我可以写一个配置 属性 所以当我加载页面时 Jinja2 将它作为一个 javascript 变量提供并且我不会加载特定的 socket-io js 文件以防它被设置为 False.I 已经试过了。
设置为 config.py:
class Config:
LIVERELOAD = False
我运行 带有 FLask-Script 的 livereload 服务器
class liveReloadServer(Command):
"""prints hello world"""
def run(self):
with app.app_context():
server = Server(app.wsgi_app)
Config.LIVERELOAD = 'True'
server.serve(port=8080)
将配置 属性 传递给 javascript 端
var LIVERELOAD = "{{ config['LIVERELOAD'] }}";
但这不起作用(LIVERELOAD 始终显示 True)因为我在 Config class 已经插入 Flask 应用程序 object.Is 之后设置 属性 另一种方式?
您需要设置 Flask 应用的配置,它与您创建的任何自定义对象无关。
app.config['LIVERELOAD'] = True