python位置参数错误_Python日常笔记(51) - 视图错误/捕捉url参数

视图功能

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

f5e8ec5d1bfbbbfbb804abc3854a9d6b.png

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

7834d1c4958bf77716604efecf635355.png注意: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参数

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

500: 服务器端的错误

a) 视图出错

原始错误页面如图:

d797a13ea7d5bfd0fb1d3d8bc40b69ed.png

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

服务器内部错误!!!

然后启动程序,如图显示

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

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

4b6ee2cfc4ae1ef28c12ec41124a1d40.png

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

4b84fac4be4178cb1b7b544f9e36401f.png

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

?P

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

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

4b84fac4be4178cb1b7b544f9e36401f.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值