django session 会话

session:

   1:INSTALLED_APPS 中有'django.contrib.sessions'

 2: MIDDLEWARE 要有中间键 'django.contrib.sessions.middleware.SessionMiddleware'

 3: 设置存储形式 按 ctrl + alt + r 输入migrate session 创建django_session数据库

 4: 引用 request.session   

django session的设计原理
  1 如果用户是第一次请求(就看客户端ie是否保存了session ID的cookie)
    创建session model
       生成一个key session 随机的一个字符串 uuid
       保存到你session_engine指定的位置
       保存到cookie中,在用户的浏览器中   
    如果第二次以上的请求,客户端ie都会制动提交cookie到django,django中利用你配置的
    SessionMiddleware中间件激活session利用cookie中的sessionID到你session_engine指
    定的位置读取session model
    并设置到request的session属性上
     
    正式因为这样你才能在你的view里面通过request.session中使用session能力

    session本身就是一个dict字典

    session再存数据必须支持序列化json

第一步:在pydlogsys/sittings.py 中有没有 INSTALLED_APPS 'django.contrib.sessions'



第二步:在pydlogsys/sittings.py MIDDLEWARE 要有中间键'django.contrib.sessions.middleware.SessionMiddleware'



第三步:设置存储形式 按 ctrl + alt + r 输入migrate session 创建django_session数据库


按回车键:



第四步:bloguser/views.py中修改登陆成功后的跳转路径



在bloguser/urls.py中修改 path('login',login),为 path('login',login,name='login'),


这样做要是登陆过,它会在数据库中的django_session表中留下记录,下次登陆就会显示你的信息

第五步:在templates/welcome.html中修改,在登陆成功后显示‘退出’,未登陆显示‘登陆’


在bloguse/views.py中创建logout函数,在登陆成功后显示‘退出’,点退出的时候返回 welcome


在未登录时,点登陆会跳转到登陆页面 login


第六步:为了让用户更好有更好的体验,如:创建两个链接,aaaaa和bbbbb 在用未登录时只能点开bbbb,登陆

后可以点开两个链接,未登录的时候点aaaaa链接会跳转到登陆页面 login

templates创建两个html文件:在两个文件中写入不同的内容


在bloguser/views.py中添加a和b两个函数


bloguser/urls,py中添加路径


templates/welcome.html中添加两个链接


这样就可以测试结果了,运行后在浏览器中输入http://127.0.0.1:8000/user/login进入登陆页面


输入账号,密码 浏览器会跳转到http://127.0.0.1:8000/welcome页面


这时的aaaaa和bbbbb两个链接都可以进入,点退出链接来测试结果


这时只能进入bbbbb的链接,点aaaaa会跳转到登陆页面 login


这次再输入账号和密码登陆后,它会直接跳转到aaaaa链接的页面 http://127.0.0.1:8000/user/a
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值