讲解对象:Django 简单实现登录界面
作者:融水公子 rsgz
知识梳理:
0.1http协议是无状态的
0.3不记得以前的请求
0.4客户端与服务器端的一次通信就是一次会话
0.5实现保持状态,在客户端或者服务器端存储有关会话的数据
0.6cookie存储id:a,session存储一个映射a:good,数据库直接存储good
0.7session在服务器端,cookie在客户端,cookie存储session_id
0.8 状态保持的目的:在一段时间内跟踪请求者的状态,可以是实现跨页面访问当前的请求者的数据
0.9 不同的请求者之间不会共享这个数据
0.10 要用session需要先启用session(setting.py文件中有设置)
0.11 启用session后,每个HttpRequest对象都有一个session数据
0.12 session属性就是类似字典的对象
0.13 get(key,default=None) 这个是根据键获取session值
0.14 clear()可以清空所有的会话
0.15 flush()删除当前的会话 删除会话的cookie
0.16 还有一种删除的方式,需要预先引入一个类,以后再说
1 模板下面新建main.html
内容:
欢迎:{{username}}
2 模板下面新建login.html
3 添加三条路由
url(r"^main/$", views.main),
url(r"^login/$", views.login),
url(r"^showmain/$", views.showmain),
4 添加视图函数
fromdjango.shortcuts import redirect
defmain(request):
# 取出session
username=request.session.get("name","游客")# 第二个参数表示取值没有取到就是游客代替
return render(request,"myapp/main.html",{"username":username})
deflogin(request):
return render(request,"myapp/login.html")
defshowmain(request):
username=request.POST.get("username")
request.session["name"]=username # 存session
return redirect("/rsgz/main/")
5 开启服务器
pythonmanage.py runserver
6 网页测试
网址:http://127.0.0.1:8000/rsgz/main/
会调到注册页面,我们完善用户名之后点击登录
之后又会返回到这个界面了。游客被我的大名取代了 欢迎:融水公子
7 打开Navicat软件 数据库查看session缓存记录
点击这个session
上面就是session缓存的记录了。