快生活 - 生活常识大全

简单实现登录界面


  讲解对象: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缓存的记录了。
网站目录投稿:静柏