视图函数
接受一个HttpRequest作为参数,返回一个HttpResponse对象
def test(request):
return HttpResponse("内部自己的url")
HttpRequest对象属性和方法:
- path 请求路径
- method 请求方法
- encoding 编码
- GET 字典类型,GET请求的参数
- POST 字典类型,POST请求的参数
- FILES 字典类型,上传文件的信息
- COOKIES 字典类型,cookies对象
- session 字典类型,表示当前会话
- META 字典类型,HTTP头部信息
- user 当前用户
def test_get(request):
print(request.get_host())
print(request.get_raw_uri())
print(request.path)
print(request.get_full_path())
print(request.method)
print(request.GET)
return HttpResponse("")
response属性
- content 返回的内容
- status_code HTTP状态相应码
- content-type 返回的数据类型,默认text/html
def test_response(request):
response = HttpResponse()
response.write("Hello django")
response.write("<br>")
response.write(response.content)
response.write("<br>")
response.write(response['Content-type'])
response.write("<br>")
response.write(response.status_code)
response.write("<br>")
response.write(response.charset)
response.write("<br>")
return response
render
from django.shortcuts import render
render(request, template_name, content=None, content_type=None, status=None, using=None)
- request 视图函数的所有请求
- template_name 模板文件
- content 字典类型,传递到HTML文件中的变量
- content_type 文档类型,默认text/html
- status 相应的状态码,默认的是200
- using 模板引擎
def test_render(request):
return render(request, 'app1/test_render.html', {'info': 'hello django'}, content_type="text/html")
test_render.html
<div>{{info}}</div>
redirect
实现页面的重定向
def test_render(request):
return redirect("http://www.baidu.com")
视图类
视图类就是用类出来需求,可以更加方便写一些复杂的需求。
path('indexpage/', IndexPages.as_view())