Flask:从URL Param设置会话变量

时间:2014-03-12 16:19:34

标签: python session cookies flask

我有一个网站需要重新命名,具体取决于访问者所在的网址。在大多数情况下,内容是相同的但CSS是不同的。我是新手,并且对会话cookie来说相对较新,但我认为最好的方法是创建一个包含“客户端”会话变量的会话cookie。然后,根据客户端(品牌),我可以将特定的CSS包装器附加到模板。

如何访问URL参数并将其中一个参数值设置为会话变量?例如,如果访问者访问www.example.com/index?client=brand1,那么我想设置session ['client'] = brand1。

我的app.py文件:

import os
import json
from flask import Flask, session, request, render_template


app = Flask(__name__)

# Generate a secret random key for the session
app.secret_key = os.urandom(24)

@app.route('/')
def index():
    session['client'] = 
    return render_template('index.html')

@app.route('/edc')
def edc():
    return render_template('pages/edc.html')

@app.route('/success')
def success():
    return render_template('success.html')

@app.route('/contact')
def contact():
    return render_template('pages/contact.html')

@app.route('/privacy')
def privacy():
    return render_template('pages/privacy.html')

@app.route('/license')
def license():
    return render_template('pages/license.html')

@app.route('/install')
def install():
    return render_template('pages/install.html')

@app.route('/uninstall')
def uninstall():
    return render_template('pages/uninstall.html')

if __name__ == '__main__':
    app.run(debug=True)

1 个答案:

答案 0 :(得分:4)

您可以在@flask.before_request修饰函数中执行此操作:

@app.before_request
def set_client_session():
    if 'client' in request.args:
        session['client'] = request.args['client']
每次传入的请求都会调用

set_client_session