视图功能
接收请求,进行处理,与M和T进行交互,返回应答。
返回html内容 HttpResponse,也可能重定向 redirect,还可以返回json数据。
404错误
404:找不到页面,关闭调试模式之后,默认会显示一个标准的错误页面。
在settings.py文件中设置如下代码:DEBUG=False
ALLOWED_HOST=[ '*']
然后启动程序输入python manage.py runserver
在浏览器中输入http://127.0.0.1:8000/test
在开发模式显示404错误如图:
DEBUG=False表示发布模式,在发布模式中显示404错误如图:
注意:DEBUG=True表示开发模式,将DEBUG=False之后,还需要将ALLOWED_HOSTS = ["*"]表示允许所有地址访问改网站
设置自定义404页面
如果要显示自定义的页面,则需要的templates目录下面自定义一个404.html文件。
a) url没有配置
b) url配置错误
404页面代码:
Title
自定义404页面,找不到{{request_path}}页面
注意:将DEBUG=False之后,并且ALLOWED_HOSTS = ["*"],并且Django会自动传入一个request_path参数
注意:设置自定义404页面必须在发布模式中起作用
500: 服务器端的错误
a) 视图出错
原始错误页面如图:
设置自定义500错误页面
首先我们在views.py中定义一个test测试方法:# 测试视图方法
def test(request):
num = '' + 1 # 这里会产生错误
return render(request, "index.html")
配置urls.py中加入url(r"^test$", views.test), # 配置测试方法
在templates目录中自定义一个500.html文件,代码如下:
500页面
服务器内部错误!!!
然后启动程序,如图显示
注意:将DEBUG=False之后,并且ALLOWED_HOSTS = ["*"]
一般我们开发的时候还是需要将DEBUG=True,ALLOWED_HOSTS = [],这样可以让我们查看错误在哪里如图:
捕获url参数
进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数。
1) 位置参数
位置参数,参数名可以随意指定
实例:
views.pyfrom django.http import HttpResponse
# 测试视图方法
def test(request, number):
return HttpResponse(number)
urls.py# 第一种方式
url(r"^test(\w+)$", views.test), # 配置测试方法
2) 关键字参数:在位置参数的基础上给正则表达式组命名即可。
?P
关键字参数,视图中参数名必须和正则表达式组名一致.
只需要将正则表达式修改一下即可:url(r"^test(?P\w+)$", views.test), # 配置测试方法注意:?P这里面的组名称一定要与test方法中num参数名称一致
完