day17-Django初识模板语言

一、前言

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

二、表单验证

2.1、request作用

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

from django.shortcuts import render
# Create your views here.

def login(request):
    print(request.method)  #输出请求方法
    return render(request,"login.html")

#输出
POST

一般情况下:get是获取数据,post是提交数据,这是在一般情况下。 如果请求连接action到自己的,怎么办?

<form action="/login/" method="post">  #不写action也是请求到自己
    <p>
        <label for="user_name">用户名:</label>
        <input id="user_name" name="username" type="text"/>
    </p>
    <p>
        <label for="pwd">密码:</label>
        <input id="pwd" name="pwd" type="password"/>
        <input type="submit" value="提交" />
    </p>
</form>

如果写的话,action需要写project中urls中的url:

<form action="/admin/" method="post">

如果写成自己的话,则会遇到csf的认认证,这个我们到后面再说,我们需要注释到project中的csf的内容:

2.2、获取用户名密码

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

<form method="post">  #不写action是请求到自己
    <p>
        <label for="user_name">用户名:</label>
        <input id="user_name" name="username" type="text"/> #添加name属性
    </p>
    <p>
        <label for="pwd">密码:</label>
        <input id="pwd" name="pwd" type="password"/> #添加name属性
        <input type="submit" value="提交" />
    </p>
</form>

我们在后台获取,注意了:request.POST封装了所有post方法发过来的请求。

from django.shortcuts import render

def login(request):
    #获取客户端请求的方法
    if request.method == "POST":
        #获取用户名密码
        user_name = request.POST.get("username",None)
        password = request.POST.get("pwd",None)
    return render(request,"login.html")

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

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

2.3、跳转页面

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

from django.shortcuts import render
from django.shortcuts import redirect  #做重定向跳转使用

def login(request):
    error_msg = ""
    if request.method == "POST":
        user_name = request.POST.get("username",None)
        password = request.POST.get("pwd",None)
        if user_name == "root" and password == "123":
            return redirect("http://www.baidu.com")  #调转到百度
        else:
            error_msg = "用户名或者密码错误"
    return render(request,"login.html",{'error_msg':error_msg})

三、初识模板语言

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

3.1、views.py设置模板字典

说明:在render返回的值中设置模板字典error_msg

from django.shortcuts import render
from django.shortcuts import redirect
# Create your views here.


def login(request):
    error_msg = ""
    if request.method == "POST":
        user_name = request.POST.get("username",None)
        password = request.POST.get("pwd",None)
        if user_name == "root" and password == "123":
            return redirect("http://www.baidu.com")
        else:
            error_msg = "用户名或者密码错误"
    return render(request,"login.html",{'error_msg':error_msg})  #设置模板字典error_msg

3.2、在模板中设置变量

说明:在模板中用对应的{ { 变量名 } } 设置,来获取后台的值。

 这边注意了,span标签,中间没有值的话,在前端页面是不显示的,所以在error_msg初始化是空字符串,如果有错误的话,就会有提示。

posted @ 2018-02-26 15:54  帅丶高高  阅读(244)  评论(0编辑  收藏  举报