django 学习(七)—— 使用Cookie和session实现登录

需求:通过Cookie和Session实现admin登录成功后,在页面显示“嘿,admin你好!”

Cookie机制:Cookie分发通过扩展HTTP协议来实现,服务器通过在HTTP的响应头中加上一行特殊的指示来提示浏览器按照指示生成相应的Cookie

      Cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器。

      浏览器检查所有存储的Cookie,如果某个Cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该Cookie附在请求资源的HTTP请求头上发送给服务器。

      缺点:存在一定的安全隐患(浏览器中会保存所有的用户信息)

Session机制:Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

一、用cookie实现需求

1.修改view.py

登录动作:

 

 set_cookie()方法向浏览器中添加cookie,这里给set_cookie()方法传了三个参数:

  • 第一个参数“user”,用于表示写入浏览器的Cookie名
  • 第二个参数username是由用户在登录页上输入的用户名(即“admin”)
  • 第三个参数3600用于设置Cookie信息在浏览器中的保持时间,默认单位为秒。

发布会管理:

 

 通过request.COOKIES来读取Cookie名为“user”的值。并且通过render将它和event_manage.html页面一起返回。

2.修改event_manage.html

 

 

 刷新浏览器,成功登录:

 

 

二、用session实现需求

1.修改views.py

 

 刷新浏览器,登录成功:

 

 这个错误跟Session的机制有关,既然要从Web服务器端来记录用户的信息,那么一定要有存放用户sessionid对应信息的地方才行。所以,我们需要创建django_session表

2.创建django_session表

 Django已经默认设置SQLite3数据库,通过migrate命令进行数据迁移,在../settings.py文件中查看SQLite3数据库的配置

 

 

 

posted @ 2022-01-07 18:16  海浪。  阅读(443)  评论(0)    收藏  举报