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