软硬件环境
- Windows 10 64bit
- Anaconda3 with python 3.7
- PyCharm 2019.3
- Flask 1.1.1
视频看这里
此处是youtube
的播放链接,需要科学上网。喜欢我的视频,请记得订阅我的频道,打开旁边的小铃铛,点赞并分享,感谢您的支持。
什么是Cookie
Cookie
是客户端保存用户信息的一种机制,用来记录用户的一些信息,实际上Cookie
是服务器在本地机器上存储的一小段文本,并随着每次请求发送到服务器。客户端和服务器的交互图如下
Cookie实例
在Flask
中,通过flask
对象的make_response
来构建响应体,然后通过set_cookie
来设置cookie
,它是一个键值对数据。下面是一个Cookie
的简单实例
run.py
文件内容
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/cookie', methods=['GET'])
def cookie():
resp = make_response("<html><body>Cookie</body></html>")
resp.set_cookie('name', 'xugaoxiang')
return resp
if __name__ == '__main__':
app.run(debug=True)
启动Flask
服务后,访问http://127.0.0.1:5000/cookie
这里推荐个chrome
浏览器的Cookie插件,它可以很方便的查看、修改、删除Cookie
信息。
在这个例子中,我们看到保存在本地的Flask
服务端设置的Cookie
信息,(‘name’:’xugaoxiang’)
什么是Session
Session
跟上面的Cookie
非常类似,只不过Session
是存储在服务器端的,在实际场景中经常遇到的登录失效,就是因为Session
在起作用。
Session实例
在Flask
中,使用session
对象来存放键值对。需要注意的是,使用Session
需要设置app.secret_key
。来看下面的实例
run.py
文件内容
from flask import Flask, render_template, make_response, session
app = Flask(__name__)
app.secret_key = "test"
@app.route('/session', methods=['GET'])
def sess():
resp = make_response("<html><body>Session.<a href='/getValue'>Get Value</a></body></html>")
session['name'] = 'xugaoxiang'
return resp
@app.route('/getValue')
def getValue():
if 'name' in session:
name = session['name']
return render_template('getvalue.html', name=name)
if __name__ == '__main__':
app.run(debug=True)
来到模板文件,getvalue.html
文件内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>GetValue</title>
</head>
<body>
<p>Session value: <b> {{ name }} </b> </p>
</body>
</html>
启动Flask
服务,访问http://127.0.0.1:5000/session
点击超链接,进入getvalue.html
页面
源码下载
https://github.com/xugaoxiang/FlaskTutorial
Flask系列教程
更多 Flask
教程,请移步