Here's my Flask setup:
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
(Shortened with "..." for this example)
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'
Now if I change CONFIG['LOGGED_IN']
to True
in one of my browsers (Let's say Google Chrome), and then open another browser to the website (Let's say Firefox), then I'm already logged in on both. If I then log out in Firefox and refresh Chrome, I'm logged out on both.
When I was using Django I never noticed a problem like this... my global CONFIG variable is persisting across browsers. Weird!
Do I need to make my CONFIG into a class? Maybe this only happens when running through dev_appserver.py and won't happen in production? I'm still learning, so please be nice! Thanks :)
Note: Please ignore the blatant security issues with this example. I assure you this is not how I plan to use this code.