【发布时间】:2016-09-09 15:08:44
【问题描述】:
这是我的 Flask 设置:
main.py
from flask import Flask
from app.views import main_bp
app = Flask(__name__)
app.register_blueprint(main_bp, url_prefix='')
app.config.py(本例用“...”缩写)
CONFIG = {
'SITE_NAME': 'Test Site',
'SSL': False,
'DEBUG': True,
'LOGGED_IN': False,
...
}
views.py
from config import CONFIG
@main_bp.route('/')
@main_bp.route('/<page_slug>/')
def fallback(page_slug='home'):
# Check if logged in
if CONFIG['LOGGED_IN']:
return 'Logged In'
else
return 'Logged Out'
现在,如果我在其中一个浏览器(比如 Google Chrome)中将 CONFIG['LOGGED_IN'] 更改为 True,然后打开另一个浏览器访问该网站(比如 Firefox),那么我已经在这两个浏览器上都登录了。如果我随后退出 Firefox 并刷新 Chrome,我将同时退出。
当我使用 Django 时,我从未注意到这样的问题……我的全局 CONFIG 变量在浏览器中持续存在。奇怪!
我需要把我的 CONFIG 变成一个类吗?也许这只会在通过 dev_appserver.py 运行时发生,而不会在生产中发生?我还在学习,所以请多多关照!谢谢:)
注意:请忽略此示例中明显的安全问题。我向你保证,这不是我打算使用此代码的方式。
【问题讨论】:
标签: python google-app-engine flask