flask session 对象


简述:

session与cookies不一样,session存储在服务器端,一般是进程内,也可通过第三方进行存储。

session的生命周期为用户登陆到用户退出之间

使用session需要用到加密标识(secret_key),用于防篡改。

app.secret_key = "you_key_!@#$"

session['username'] = username#设置一个username的session

session.pop('username',None)


设计:一个简单的登陆程序

1、用户登陆

@app.route('/login',methods=['POST','GET'])deflogin():ifrequest.method=='POST':username=request.form['username']#此次应该进行详细的认证后再存sessionsession['username']=usernamereturnredirect(url_for('/index'))return'''<formaction='/login'method='POST'><inputname='username'/><inputtype='submit'value='submit'/></form>'''


2、首页

@app.route('/index')defindex():if'username'insession:username=session['username']return'welcome{0}'.format(username)else:return'pleaseyoulogin'


3、注销

@app.route('/logout')deflogout():session.pop('username',None)#字典的方法相似returnredirect(url_for('/index'))