Django - 路由配置

本文介绍了Django的路由配置,包括URL的反向解析、不同版本的url()、path()和re_path()方法的使用,以及路由末尾的"/"、正则路径分组和嵌套参数的处理。此外,还讲解了路由分发(include)的应用,以及URL的反向解析在项目中的重要性。
摘要由CSDN通过智能技术生成

路由简单的来说就是根据用户请求的URL链接来判断对应的处理程序, 并返回处理结果, 也就是URL与Django的视图建立映射关系,Django的根路由文件在setting.py文件中指定

ROOT_URLCONF = 'demo.urls'

Django1.x版本

url()方法:普通路径和正则路径均可使用,需要自己手动添加正则首位限制符号

from django.conf.urls import url
from . import views

urlpatterns = [
    # 普通路径  http://127.0.0.1:8888/index
    url(r'^index/$', views.index), 
    # 正则路径  http://127.0.0.1:8888/re_test/1234/
    url(r'^re_test/([0-9]{4})/$', views.re_test), 
]

Django 2.2.x 之后的版本

path()方法:用于普通路径,不需要自己手动添加正则首位限制符号,底层已经添加

re_path()方法:用于正则路径,需要自己手动添加正则首位限制符号

from django.urls import path, re_path
from . import views

urlpatterns = [
    # 普通路径  http://127.0.0.1:8888/index
    path('index/', views.index),
    # 正则路径  http://127.0.0.1:8888/re_test/2021/
    re_path(r'^re_test/([0-9]{4})/$', views.re_test),
]

总结:Django1.1.x 版本中的 url 和 Django 2.2.x 后版本中的 re_path 用法相同


路由末尾的"/"

URL  http://127.0.0.1:8000/blog
在服务器端xxx叫文件, xxx/叫目录(或路径)
当你末尾没加反斜杠的时候,这个URL指向的是/blog,也就是127.0.0.1:8000下的blog文件
这时候浏览器的工作是在127.0.0.1:8000下寻找blog文件,如果没有该文件再查找一个与该文件同名的目录,即blog/(这才能解释为什么会有一个301重定向到http://127.0.0.1:8000/blo/)
当我们末尾加上反斜杠的时候,就省去查找blog文件这一步骤,直接查找blog/目录,就高效多了

提取URL

正则路径无名分组:无名分组按位置传参, views函数中除了request, 其他形参的数量要与urls中的分组数量一致, 一一对应

# In urls.py文件
from django.conf.urls import re_path
from .
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SitVen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值