django之视图函数的介绍


 url(r"login",   views.login),
 url(r"yuan_back",   views.yuan_back),

-----------------------------------views.py
def login(req):
    if req.method=="POST":
        if 1:
            # return redirect("/yuan_back/")
            name="yuanhao"

            return render(req,"my backend.html",locals())

    return render(req,"login.html",locals())


def yuan_back(req):

    name="苑昊"

    return render(req,"my backend.html",locals())

-----------------------------------login.html

<form action="/login/" method="post">
    <p>姓名<input type="text" name="username"></p>
    <p>性别<input type="text" name="sex"></p>
    <p>邮箱<input type="text" name="email"></p>
    <p><input type="submit" value="submit"></p>
</form>
-----------------------------------my backend.html
<h1>用户{{ name }}你好</h1>

#总结: render和redirect的区别:
#   1 if render的页面需要模板语言渲染,需要的将数据库的数据加载到html,那么所有的这一部分
#     除了写在yuan_back的视图函数中,必须还要写在login中,代码重复,没有解耦.

#   2 the most important: url没有跳转到/yuan_back/,而是还在/login/,所以当刷新后
#     又得重新登录.

 

from django.shortcuts import render,HttpResponse,render_to_response,redirect
import time

# Create your views here.

def show_time(request):

    # return HttpResponse ("Hello")
    t=time.ctime()
    return render(request,"index.html",{"time":t})


# def article_year(request,year,month):
#
#     return HttpResponse(month)

def article_year_month(request,year,month):

    return HttpResponse("year:%s  month:%s"%(year,month))

def register(request):

    print(request.path)
    print(request.get_full_path())
    # print(request.GET)
    # print(request.GET.get("user"))
    # print(request.GET.get("age"))
    if request.method=="POST":

        # print(request.GET)
        user=request.POST.get("user")
        print(request.POST.get("user"))
        print(request.POST.get("age"))
        if user=="Hu":
            return redirect("http://www.baidu.com")
        return HttpResponse("SUCCESS!")

    # return render(request,"register.html")
    return render_to_response("register.html")

 

页面渲染:         render()(推荐)<br>                 render_to_response(),
页面跳转:         redirect("路径")
locals():    可以直接将函数中所有的变量传给模板

 

posted on 2018-09-17 08:19  野犬  阅读(69)  评论(0)    收藏  举报