视图功能

接收请求,进行处理,与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错误如图:

python解析url中的乱码_python解析url中的乱码

DEBUG=False表示发布模式,在发布模式中显示404错误如图:

python解析url中的乱码_测试方法_02

注意: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参数

python解析url中的乱码_正则表达式_03

注意:设置自定义404页面必须在发布模式中起作用

500: 服务器端的错误

a) 视图出错

原始错误页面如图:

python解析url中的乱码_python解析url中的乱码_04

设置自定义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页面

服务器内部错误!!!

然后启动程序,如图显示

python解析url中的乱码_python位置参数错误_05

注意:将DEBUG=False之后,并且ALLOWED_HOSTS = ["*"]

一般我们开发的时候还是需要将DEBUG=True,ALLOWED_HOSTS = [],这样可以让我们查看错误在哪里如图:

python解析url中的乱码_python位置参数错误_06

捕获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),  # 配置测试方法

python解析url中的乱码_自定义_07

2) 关键字参数:在位置参数的基础上给正则表达式组命名即可。

?P

关键字参数,视图中参数名必须和正则表达式组名一致.

只需要将正则表达式修改一下即可:url(r"^test(?P\w+)$", views.test),  # 配置测试方法注意:?P这里面的组名称一定要与test方法中num参数名称一致

python解析url中的乱码_自定义_07