FLASKBLOG_THEMES = {'perfect_blue': 'Perfect Blue', 'black_swan': 'Black Swan'}
FLASKBLOG_SLOW_QUERY_THRESHOLD = 1
from settings import config
app = Flask(name) app.config.from_object(config[config_name])
def redirect_back(default='blog.index', **kwargs): for target in request.args.get('next'), request.referrer: if not target: continue if is_safe_url(target): return redirect(target) return redirect(url_for(default, **kwargs))
@blog_bp.route('/change-theme/<theme_name>') def change_cheme(theme_name): if theme_name not in current_app.config['FLASKBLOG_THEMES'].keys(): abort(404)
response=make_response(redirect_back())
response.set_cookie('theme',theme_name,max_age=30*24*60*60)
return response
<link rel="stylesheet" href="{{ url_for('static',filename='css/%s.min.css' % request.cookies.get('theme','perfect_blue')) }}" type="text/css">
<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Change Theme </button> <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> {% for theme_name, display_name in config.FLASHBLOG_THEMES.items() %} <a class="dropdown-item" href="{{ url_for('blog.change_theme', theme_name=theme_name, next=request.full_path) }}"> {{ display_name }}</a> {% endfor %} </div> </div>