Cookies保存在客户端,控制重复登录不用再输入账号密码;
Sessions保存在服务端,控制登录时长之类的;需要设置secret_key;
首页模板./templates/index.html
<html>
<body>
<form action = "/setcookie" method = "POST">
<p><h3>Enter userID</h3></p>
<p><input type = 'text' name = 'nm'/></p>
<p><input type = 'submit' value = 'Login'/></p>
</form>
</body>
</html>
控制器文件IndexController.py
from flask import Flask, render_template, request, make_response, session, redirect, url_for;
app = Flask(__name__);
app.strict_slashes = False;
# 越复杂越好
app.secret_key = '123456';
@app.route('/')
@app.route('/index')
def index():
if 'userID' in session:
userID = session['userID'];
return 'Logged in as ' + userID + "<br/><a href='/logout'>Click here to logout</a>";
else:
return render_template('index.html');
@app.route('/setcookie', methods = ['POST', 'GET'])
def setcookie():
if request.method == 'POST':
user = request.form['nm'];
# 设置session
session['userID'] = user;
# 设置cookie
resp = make_response("登录成功<br/><a href='/getcookie'>Click here to read cookie</a>");
# resp = make_response(render_template('readcookie.html'));
resp.set_cookie('userID', user);
return resp;
@app.route('/getcookie')
def getcookie():
name = request.cookies.get('userID')
return '<h1>welcome '+name+'</h1>'
@app.route('/logout')
def logout():
# 删除session
session.pop('userID', None)
return redirect(url_for('index'))
if __name__ == '__main__':
app.run('0.0.0.0', 8080, debug = True);
运行
$ python IndexController.py
Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
使用浏览器访问
http://127.0.0.1:8080/
参考
https://www.tutorialspoint.com/flask/flask_cookies.htm