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">密 码:</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">密 码:</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">密 码:</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>标签如果没有值,不显示。
如:上面的栗子,如果用户,密码错误,才会显示错误信息



浙公网安备 33010602011771号