Django框架学习 — 8.1视图详解 -- url路由

视图回顾
视图负责接受Web请求,进行逻辑处理,返回Web响应,并与T模块和M模块进行交互

使用步骤:
创建应用,python manage.py startapp app
注册应用,在settings.py文件的INSTALLED_APPS配置项中,注册应用
配置url路由,在urls.py文件的urlpatterns列表中,添加路由url(‘index’, views.index)
定义视图处理函数,在views.py中定义视图处理函数index,def index(request):

url路由
一条URL路由包括:url规则和视图处理函数两部分:

url规则:
使用字符串进行精确匹配
使用正则表达式匹配,格式为r’模式匹配串’,
之前的127.0.0.1:8000/app/index,使用正则方式后修改为:
项目urls.py:url(‘app/’, include(‘app.urls’)),
应用urls.py:url(r’^index/$’, views.index),

视图处理函数:
定义方式:url(url规则, ‘视图处理函数名’),常用于应用中,例如:url(r’^area$’, views.area),
包含方式:url(url规则, include(‘应用.urls’)),常用于项目,如:url(‘app/’, include(‘app.urls’)),
实例演练: 增加视图app/vtest,视图处理函数views.vtest

修改urls.py文件:添加:url(r'^vtest/$', views.vtest)
修改views.py文件:添加:def vtest(request):

从URL请求中获取数据
URL请求被看做一个普通的python字符串,匹配时不包括域名、get或post参数

例如:请求地址http://127.0.0.1:8000/app/vtest123/?a=10,会去除掉域名和参数部分,并将最前面的/去除后,只将剩下的部分app/vtest123/进行正则匹配

实例演练: 匹配app/vtest+任意数字的URL请求

修改urls.py文件:url(r’^vtest\d+/$’, views.vtest),
修改views.py文件:return HttpResponse(‘测试视图’)
](https://img-blog.csdnimg.cn/20200216211139983.png)
获得数据
从URL请求中获得的参数作为字符串传递给视图处理函数
在正则表达式中使用小括号来指定获得参数的部分,分为两种方式:

位置参数
关键字参数
位置参数方式:

修改urls.py文件:url(r’^vtest(\d+)/$’, views.vtest),
修改views.py文件:

def vtest(request, id):
    return HttpResponse('测试视图:%s' % id)

在这里插入图片描述
自定义错误页
当请求的页面资源无法找到时,会抛出404错误
在这里插入图片描述
也可以自定义404错误页

修改setting.py文件的DEBUG和ALLOWED_HOSTS项

DEBUG = False
ALLOWED_HOSTS = ['*', ]

在templates目录中创建404.html文件
在这里插入图片描述
页面出错时显示自定义的404页面
在这里插入图片描述

发布了15 篇原创文章 · 获赞 0 · 访问量 150

猜你喜欢

转载自blog.csdn.net/zyh8619990307/article/details/104349087