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'

django session 会话


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

django session 会话


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

django session 会话

按回车键:

django session 会话


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

django session 会话


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

django session 会话

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

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

django session 会话

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

django session 会话

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

django session 会话

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

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

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

django session 会话

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

django session 会话

bloguser/urls,py中添加路径

django session 会话

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

django session 会话

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

django session 会话

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

django session 会话

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

django session 会话

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

django session 会话

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

django session 会话















相关文章: