讲解对象:Django 简单实现登录界面 作者:融水公子 rsgz 知识梳理: 0.1http协议是无状态的 0.2每次请求都是一次新的请求 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 内容: <!--!doctypehtml--> <htmllang="en"></htmllang="en"> <meta charset=""UTF-8""/> <title>我的</title> <h1>欢迎:{{username}}</h1> <a href=""/rsgz/login"">登录</a> 2 模板下面新建login.html <!--!doctypehtml--> <htmllang="en"></htmllang="en"> <meta charset=""UTF-8""/> <title>登录</title> <form action=""/rsgz/showmain/"" method=""post""></form> <input type=""text"" name=""username"/"/> <input type=""submit"" value=""登录""/> 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缓存的记录了。