路由系统


URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。

你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。
官网
2.0版本官网

URLconf配置

基本格式

from django.conf.urls import url

urlpatterns = [
     url(正则表达式, views视图函数,参数,别名),
]
  • Django 2.0版本中的路由系统已经替换成下面的写法
from django.urls import path

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    path('articles/<int:year>/', views.year_archive),
    path('articles/<int:year>/<int:month>/', views.month_archive),
    path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail),
]

如果在1.11版本用2.0版本:
在这里插入图片描述

正则表达式

  • 正则表达式前面加r
    r表示原始正则表达式
    不用加\转义了
  • Django拿到一个url基本步骤:
    • 第一步:解析url
      在这里插入图片描述
      详细运行过程:
      在这里插入图片描述
      如果不想返回301后加斜线,可以在setting中设置:
      在这里插入图片描述

在这里插入图片描述
- 第二步,传递到对应的视图函数
NOTE:传递到视图函数返回的永远是字符串类型
如图所示:
在这里插入图片描述
在这里插入图片描述

  • 新建app
    如果一个项目有很多对应关系,可以写在多个url中,此时要新建app
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
2 在新建的app中新建urls.py文件,然后复制一级url中的配置项,如图
在这里插入图片描述
多个app,先匹配项目下的url,再根据给定的app寻找下一个地址。
在这里插入图片描述

  • 怎样在一级路由引导到下级路由呢
    - 在这里插入图片描述
    在这里插入图片描述
  • 正则中参数详解
    • 基本配置
from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^articles/2003/$', views.special_case_2003),
    url(r'^articles/([0-9]{4})/$', views.year_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]
  • 当传多个参数时
  • 位置参数
    在这里插入图片描述

在这里插入图片描述
解决方法
在这里插入图片描述
在这里插入图片描述

  • 关键字参数
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

解决方法
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
- 不能同时设置位置参数和关键字参数

参数

命名路由和路由反向解析

在这里插入图片描述

  • 起别名
    起别名的目的是为了反向解析URL的时候有依据,别名放在二级路由以下。
  • 在视图函数中用reverse反向解析url

    在这里插入图片描述
    如果url中有参数怎么传
  1. url中参数是关键字参数时,格式 reverse(‘别名’, kwargs={关键字:'传的参数’}),如

在这里插入图片描述
2. 如果url中参数是关键字参数,格式reverse('别名‘, args=(‘参数’),如
在这里插入图片描述

  • 在html页面中运用别名反向解析url,

在这里插入图片描述

  • 名称空间(namespace)
    如果app项目比较多,url比较多,别名一样时,把他们当到名称空间里,如
    app01和app02都有个别名为’laura’的url,可以各自命名,反转时,标注是在哪个名称空间
    在这里插入图片描述
  • 制定一个默认的URL,防止经常出现404页面
    在这里插入图片描述
    参考资料
  • 路由的参数可以传给视图函数的参数,
    模版语言中url中可以放路由的别名,加引号。也可以放html页面中的内容,不加引号,通常在a标签中引用,来引导路由地址

    在这里插入图片描述
  • 两个url可以使用同一个视图函数
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值