第三章、用Django编写一个简单的登录表单项目

1.编写一个登录表单

第一步: 在sign/templates/index.html 文件中,开发一个简单的 登录表单

第三章、用Django编写一个简单的登录表单项目_第1张图片

第二步:启动:Django服务,访问 : http://127.0.0.1:8002/index/

第三章、用Django编写一个简单的登录表单项目_第2张图片
第三章、用Django编写一个简单的登录表单项目_第3张图片

2. GET 请求:

第一步:给 form 表单添加属性 method="get"  方法   
	  
	 	

发布会签到系统



第二步:保存 index.html 文件,刷新登录页面,输入用户名/密码:admin/admin123 查看结果:

第三章、用Django编写一个简单的登录表单项目_第4张图片

3.post请求

第一步:在 from表单中将 属性 methtod="post‘ 改变成post
	 
	 	

发布会签到系统



第二步:访问主页地址:http://localhost:8002/index

第三章、用Django编写一个简单的登录表单项目_第5张图片

第三步:解决以上出现的错误
	查资料发现:Django针对 CSRF的保护措施是在生成的每一个表单中反置一个自动生成的令
牌,通过令牌查看 post请求是否来自同一个网站;

第三章、用Django编写一个简单的登录表单项目_第6张图片

第四步:刷新页面: 访问地址:https://localhost:8002/index

第三章、用Django编写一个简单的登录表单项目_第7张图片

4.处理登陆的请求

第一步:由于要添加登陆的请求,所以在 from 表单中的 Action属性来指定提交的请求:
	
第二步:在 guest 文档中的 urls.py 中添加 登陆请求的 URL path(r'login/', views.login), 第三步: 映射到 sign 文档下面的 views.py 中添加 一个登陆请求的 函数。 def login(request): if (request.method=="post"): username=request.POST.get("username","") password=request.POST.get("password","") if(username='admin' and password="admin123"): return HttpResponse("登录成功") else: return render(request,"index.html") 解释函数: 1. 通过 request.method=“post” 得到客户端的请求方式。 2. 通过 request.POST 来获取POST请求 3. 通过 .get() 来获取 username, password 4. 假如成功则,通过 httpResponse 返回正确的字段。 第四步:没有错误的返回结果,想要在 index.html 中添加一个错误的返回结果。 {{error}}
解释:根据:Django模板语言,添加{{ error }} , 它对应的 render 返回字典中key, 即error, 一旦登陆失败就就显示出 对应的 value, 即,lindex,html 中的 ‘username or password’ 第五步:查看一下登陆成功以后的结果。

第三章、用Django编写一个简单的登录表单项目_第8张图片

第六步:查看一下登陆失败以后的结果。

第三章、用Django编写一个简单的登录表单项目_第9张图片

5.将登陆成功以后的页面 通过 HTML来代替,使用 htpresponsredirect 重定向

第一步:在 sign的 templates 中 新建一个 .html 的页面

第三章、用Django编写一个简单的登录表单项目_第10张图片

第二步:在 guest 目录中的 urls.py 中 添加 success 路径

第三章、用Django编写一个简单的登录表单项目_第11张图片

第三步:映射到 sign 中的 views.py 中添加 success 函数

第三章、用Django编写一个简单的登录表单项目_第12张图片

第四步:验证,是否登陆成功以后的路径是否是  success

第三章、用Django编写一个简单的登录表单项目_第13张图片

6.使用 Cookie ( 存储到本地终端上面的数据)

	第一步:修改在 sign 下的 views.py 中 添加 Cookie
		Cookie机制:
         Cookie 分发通过扩张的HTTP协议来实现,服务器通过在HTTP的响应头
     中加上一行特殊的指示来提示浏览器按照指示生成相应的 Cookie.

第三章、用Django编写一个简单的登录表单项目_第14张图片

	第二步: 在 success.html下面中添加 标签来显示用户名

第三章、用Django编写一个简单的登录表单项目_第15张图片

第三步:重新加载页面信息访问路径:http://localhost:8002
	  查看登陆成功以后的页面:在浏览器上面显示出 html 中传回来的值

第三章、用Django编写一个简单的登录表单项目_第16张图片

7.使用 Session

 第一步:修改 sign下面的 views.py中的 login函数
 	 cooike 虽然可以使用但是存在一定的安全隐患,用户登陆以后会将所有的 用户名都停留在 
浏览器页面上面,使用为了防止用人盗取用户名,将cookie换成了 session

第三章、用Django编写一个简单的登录表单项目_第17张图片

第二步:刷新页面,重新加载网站:http://localhost:8002/index

第三章、用Django编写一个简单的登录表单项目_第18张图片

8. 登陆 Django 默认后台

  1. 在上一章使用session的时候,Django同时也生成了 auth_user表,该表中存放用户信息可以登陆Django自带的Amdin管理后台。

  2. 通过命令来创建 Admin 后台的管理账号。

    	创建 Admin 后台 超级管理账号。
     		python manage.py createsuperuser
     			其中输入的密码是不可见的一定要注意
    

第三章、用Django编写一个简单的登录表单项目_第19张图片
3. 在浏览器中输入admin管理后台登陆地址:http://localhost:8002/admin

登陆完成以后的结果:

第三章、用Django编写一个简单的登录表单项目_第20张图片

9.引用Django 认证登陆

  1. 在 sign 目录下的 views.py 文件中,修改 login 登陆函数

     from django.contrib import auth #导入auth包
     user=auth.authenticate(username=username,password=password)#认证用户名
    
  2. 刷新页面,访问:http://localhost:8002/index
    第三章、用Django编写一个简单的登录表单项目_第21张图片

10.关上窗户

  1. 不需要也可以直接访问到登陆成功的页面。
    访问地址:http://localhost:8002/success/

  2. 为了防止直接打开登陆成功页面,所以想要关闭这个 登陆页面的 窗口。在sigin下面的 views.py 文件 添加内容:

     from django.contrib.auth.decorators import login_required
     @login_required#防止浏览器直接访问该网页    
    
  3. 添加@login_required 的装饰来直接访问页面:

    地址:http://localhost:8002/success

你可能感兴趣的:(python,全栈开发之Django框架学习)