美文网首页
08.视图详解 -- url路由

08.视图详解 -- url路由

作者: __深蓝__ | 来源:发表于2019-03-13 15:25 被阅读0次

视图回顾

  • 视图负责接受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 -

相关文章

  • 08.视图详解 -- url路由

    视图回顾 视图负责接受Web请求,进行逻辑处理,返回Web响应,并与T模块和M模块进行交互使用步骤:创建应用,py...

  • 6.正向路由

    必须学会正向路由 1. 路由 将url与视图进行绑定. (路由用于维护url与视图之间 关系.) 通过正则匹配...

  • day05-视图函数

    1)定义视图函数,HttpResponse 2)子路由 url的配置,建立url地址和视图的对应关系 3)主路由配...

  • django路由url.py详解_Django学习笔记(四)-p

    django路由url.py详解_Django学习笔记(四)-python3 url路由方式: 1. patter...

  • Django框架路由系统

    路由系统(controller) 路由系统(URL配置)它就是URL与要为该URL调用的视图函数之间的映射表,也就...

  • 路由

    基本带参路由 指定参数类型的路由 多URL的路由匹配 允许在一个视图函数中设置多个url的路由规则 路由中设置HT...

  • 十二 Django-URL路由

    URL路由映射 一、概要 路由映射模块,主要完成url与views视图函数的映射。当一个url请求到来时,会按照这...

  • django里的那些事儿

    一、CBV版视图二、给视图加装饰器三、request对象常用属性四、url:路由系统五、命名url和url的反向解...

  • Flask视图:视图函数,类视图,蓝图使用方法整理

    摘要:Flask,视图,视图函数,类视图,方法视图,装饰器,蓝图 视图函数 在Flask中路由是指用户请求的URL...

  • Flask学习笔记之url_for与重定向

    大纲 前文中我们讲到,url(路由)和函数视图的映射关系,也就是通过对应的url,可以返回对应的视图函数。当然我们...

网友评论

      本文标题:08.视图详解 -- url路由

      本文链接:https://www.haomeiwen.com/subject/mupupqtx.html