Django中的views

燕靖
2023-12-01

views函数实现的是对urls路由过来的请求进行处理,然后与模板中页面一起渲染并返回给用户。
返回的几种方式:
render:渲染后返回格式,第一个参数必须为request
return render(request,”register.html”)

HttpResponse:直接返回字符串消息
return HttpResponse(“hello”)

render_to_response:直接以渲染形式返回
return render_to_response(“index.html”,{“time”:t})

redirect:重定向路由
return redirect(“/login/”)

render与redirect区别:
render:直接返回页面,不走新的视图函数,刷新后返回原来的网页。
redirect:走新的url对应的视图函数,刷新后不会返回原来的网页。
实例

from django.shortcuts import render,HttpResponse,render_to_response,redirect
import time
# Create your views here.
def show_time(requset):

    ##############
    数据判断,数据库存取等相关操作
    #############
    t=time.ctime()
    name="yuan"
    # locals()直接使模板可以使用所有对象
    return render(requset,"index.html",locals())
    # 返回"hello"字符串
    return HttpResponse("hello")

    return render_to_response("index.html",{"time":t})

def article_year(request,y):

    return HttpResponse(y)

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())

    if request.method=="POST":
        print(request.POST.get("user"))
        print(request.POST.get("age"))
        user=request.POST.get("user")
        if user=="yuan":
            return redirect("/login/")
            #return render(request,"login.html",locals())
        return HttpResponse("success!")
    return render(request,"register.html")
    return render_to_response("register.html")

def login(req):
    name="yuan"
    return render(req,"login.html",locals())
 类似资料: