day17-django模板语言

一、前言

  今天我们来学习一下后台是如何识别模板语言的,和简单的用户名密码的验证,这个很关键,所以我们要学好了,对于我们以后有很大的用处。

二、表单验证

2.1、request 作用

说明:request 包含了客户端发过来的所有信息,包含请求头和请求体。

  查看method 方式,默认使用get 方式,还有很多方式:post,delet,put,....  

1 def login(request):
2     print(request.method)
3     return render(request,'login.html')
4 
5 #输出
6 GET

 

一般情况下:get 是获取数据,post是提交数据, 不指定method 默认使用get 方式

 

 1 <body>
 2     <form action="login/" method="post">
 3             <p>
 4                 <label for="user">用户名:</label>
 5                 <input type="text" placeholder="user" name="user" id="user">
 6             </p>
 7             <p>
 8                 <label for="pwd">&nbsp;&nbsp;码:</label>
 9                 <input type="text" placeholder="pwd" name="pwd" id="pwd">
10             </p>
11             <input type="submit" value="登陆">
12             <input type="button" value="取消" >
13     </form>
14 </body>

action 如果不写的话,默认是自己,

  这里有一个小坑, action="/login" 或者action="/login/" 需要与 url 中的设置一致

  如果后面有“/” 就一起有,要么一起不加

  还有一个 csrf 验证,这里先注释掉,后期会另外说明,在settings 中

 

2.2、获取用户名,密码

  坑已经填完,激动人心时刻来了,前台往后台数据交互要开始了

  说明:我们需要在模板的input标签中添加name属性,然后后台通过字典的形式获取你的用户名密码。模板代码如下:  

1 def login(request):
2     if request.method=="GET":
3         return render(request,'login.html')
4     elif request.method=="POST":
5         print("USER",request.POST.get("user",None))
6         print("PWD",request.POST.get("pwd",None))
7         return HttpResponse("OK")

#输出  

 

 1 <form  method="post">
 2             <p>
 3                 <label for="user">用户名:</label>
 4                 <input type="text" placeholder="user" name="user" id="user">
 5             </p>
 6             <p>
 7                 <label for="pwd">&nbsp;&nbsp;码:</label>
 8                 <input type="text" placeholder="pwd" name="pwd" id="pwd">
 9             </p>
10             <input type="submit" value="登陆">
11             <input type="button" value="取消" >
12     </form>

当然获取用户名密码也可以是,只是这种情况没有值的时候会报错,所以我们一般情况下不用:

1
2
user_name = request.POST["username"]
password = request.POST["pwd"]

2.3 页面跳转

   如上面,后台已经获取了用户、密码,下一步就需要对用户密码,进行验证

如果成功了,则跳转到登陆的界面,刚才我们只是简单的给它返回"OK"

说明:1.用redirect做重定向跳转到别的页面,

  

 1     <form  method="post" action="/login/">
 2             <p>
 3                 <label for="user">用户名:</label>
 4                 <input type="text" placeholder="user" name="user" id="user">
 5             </p>
 6             <p>
 7                 <label for="pwd">&nbsp;&nbsp;码:</label>
 8                 <input type="text" placeholder="pwd" name="pwd" id="pwd">
 9                  <span style="color:red">{{ error_msg }}</span>
10             </p>
11 
12             <input type="submit" value="登陆">
13             <input type="button" value="取消" >
14     </form>
 1 def login(request):
 2     if request.method=="GET":
 3         return render(request,'login.html')
 4     elif request.method=="POST":
 5         print("USER",request.POST.get("user",None))
 6         print("PWD",request.POST.get("pwd",None))
 7         if request.POST.get("user",None)=="root" and request.POST.get("pwd",None)=="123":
 8             return redirect("http://www.baidu.com")
 9         else:
10             error_msg="用户密码错误"
11             return render(request,"login.html",{"error_msg":error_msg})

三、初识模板语言

  模板语言的原理: 先找到模板下面的login.html,然后打开这个文件加载到内存中,然后找到这个特殊的字符,error_msg,替换成值。

  注意: <span></span>标签如果没有值,不显示。

  如:上面的栗子,如果用户,密码错误,才会显示错误信息

  

  

 

posted @ 2018-07-05 15:26  东郭仔  阅读(126)  评论(0)    收藏  举报