08.视图详解 -- url路由

视图回顾

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

  • 使用步骤:
    创建应用,python manage.py startapp app
    注册应用,在settings.py文件的INSTALLED_APPS配置项中,注册应用
    配置url路由,在urls.py文件的urlpatterns列表中,添加路由url('index', views.index)
    定义视图处理函数,在views.py中定义视图处理函数indexdef 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('测试视图')

获得数据

从URL请求中获得的参数作为字符串传递给视图处理函数
在正则表达式中使用小括号来指定获得参数的部分,分为两种方式:

  • 位置参数
  • 关键字参数

位置参数方式:

  • 修改urls.py文件:url(r'^vtest(\d+)/$', views.vtest),
  • 修改views.py文件:
def vtest(request, id):
    return HttpResponse('测试视图:%s' % id)

关键字参数方式:

  • 修改urls.py文件:url(r'^vtest(?P<id1>\d+)/$', views.vtest),
  • 修改views.py文件:
def vtest(request, id1):
    return HttpResponse('测试视图:%s' % id1)

自定义错误页

当请求的页面资源无法找到时,会抛出404错误

也可以自定义404错误页

  • 修改setting.py文件的DEBUGALLOWED_HOSTS
DEBUG = False
ALLOWED_HOSTS = ['*', ]
  • templates目录中创建404.html文件
  • 页面出错时显示自定义的404页面




- end -

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 考试的日期越来越近,大宝最近咳嗽厉害。希望孩子能好好休息,尽量不耽误上课。身体是革命的本钱,养好了身体才能去...
    涵飞儿_dcfa阅读 171评论 0 0
  • 交作业啦 听心蓝老师的课已经有几天了!就是没交过作业^_^今天终于收齐了某宝买的工具了(等到花儿都谢了……)讲真,...
    小雨_姐姐阅读 234评论 5 4
  • 灯照他窗上,伏影书声响。 头重未敢落,悬梁刺股伤。 勉励劝学子,学子为书忙。 谁堪子时眠,起在日未黄。 诸卿施压力...
    福瑞德姆阅读 156评论 0 7
  • 这两个小朋友, 一个要把薯片 都舔一下, 再塞进袋子里, 妈妈不让。 一个要吃狗粮, 妈妈不让。 于是, 他们就抓...
    静水观澜阅读 391评论 0 0
  • 昨天晚上惦记着听欣频老师的跨年调频微课,可是小宝一直不睡觉,导致我心情烦躁在晚上11点凶了她,她哭着睡了。 我开始...
    莫西时光记阅读 728评论 0 2