- cookie:保存在浏览器中的。
- session:存储在服务器。使用session,敏感数据不是直接发送回浏览器,而是发送一个`session_id`,服务器将session_id和敏感数据做一个映射存储在服务器的session中。session可以设置过期时间。保障了账号安全
- cookie和session都可以理解为一种存储数据的方式
flask中session的工作机制:把敏感数据经过加密后放入session中,然后再把session存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取session,然后再从session中读取敏感数据,并进行解密,获取最终的用户数据。
操作session:
- 使用session要设置SECRET_KEY,用来作为加密用的,并且这个SECRET_KEY如果每次都变化,那么之前的session就不能解密了。
- 操作session,跟操作字典是一样的
- 添加session,`session['username']`
- 删除session,`session.pop['username']或`delsession['username']。第一种,如果username不存在会报错,第二种如果不存在返回的是none
- 清楚所有session,`session.clear()`
- 获取session,`session.get('username')
get请求和post请求:
get请求:
- 场景:如果只从服务器获取数据,没有对服务器产生任何影响,那么用get请求
- 传参:get请求传参是放在url中,并且是通过`?`的形式来制定key和value的
post请求:
- 场景:如要对服务器产生影响,使用post请求
- 传参:post传参不是放在url中,是通过`form data`的形式发送给服务器的
get请求通过`flask.request.args`来获取
post请求通过`flask.request.form`来获取
post需要注意:
- 要在input标签中,要写name来标识这个value的key,方便后台获取
- 在写form表单的时候,要指定`method='post`并且要指定`action=url`
-
<form action="{{ url_for('login') }}" method="post"> <table> <tbody> <tr> <td>用户名:</td> <td><input type="text" placeholder="请输入用户名" name="username"></td> </tr> <tr> <td>密码:</td> <td><input type="text" placeholder="请输入密码" name="password"></td> </tr> <tr> <td></td> <td><input type="submit" value="登录"></td> </tr> </tbody> </table> </form>