Django-2 路由层(URLconf)中的urls配置

本文详细介绍了Django中的URL配置,包括HttpRequest处理、简单路由配置、带kwargs参数的url、有名分组、路由分发以及URL的反向解析。通过实例展示了如何设置和使用URLconf,强调了反向解析在避免硬编码URL中的重要性。
摘要由CSDN通过智能技术生成

1. Django如何处理HttpRequest请求

当一个用户请求Django服务器的一个页面时,其urls查找路径为:

  1. Django从根URLconf模块查找,这是ROOT_URLCONF设置的值,如果传入 HttpRequest对象具有urlconf 属性,则将使用其值代替 ROOT_URLCONF设置。
  2. Django加载Python模块并查找项目中的变量 urlpatterns。
  3. Django依次匹配每个URL模式,在与请求的URL匹配的第一个模式停下来;如果项目中没有且设置了路由分发,则项目中找完后进入到应用中查找,查到与请求的URL匹配的第一个模式停下来,无匹配则报错。
  4. 一旦其中一个URL模式匹配成功,Django就会导入并调用该url对应的视图函数,其中视图传递以下参数:
    . 一个HttpRequest实例。
    . 如果匹配的URL模式未返回任何命名组,则正则表达式中的匹配将作为位置参数提供。
    . 关键字参数由路径表达式匹配的任何命名部分组成,path/re_path/kwargs参数中指定的任何参数覆盖。

2. 路由配置

URLconf是url路径到views视图函数的一个映射。

2.1简单的路由配置

Django文档中一个简单的URLconf例子:

from django.urls import path

from . import views

urlpatterns = [
    path('articles/2003/', views.special_case_2003), # 后台special_case_2003函数不需要传参
    path('articles/<int:year>/', views.year_archive), # 后台year_archive函数需要传1个参数来接收url中的year
    path('articles/<int:year>/<int:month>/', views.month_archive),# 后台month_archive需要传2个参数来接收url中的year和month
    path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值