• 07.URL调度器工作原理


    1.工作原理

    在这里插入图片描述
    django通过urlconf来映射视图函数,只区分路径,不区分http方法

    • Django确定要使用的根URLconf模块,一般实在settings中的ROOT_URLCONF设置的值,但是如果传入HttpRequest对象具有一个urlconf属性(由中间件设置),则其值代替ROOT_RULCONF来设置
    • Django加载该URLconf模块并查找变量urlpatterns,它是一个列表django.url.path() 和 / 或django.urls.re_path()实例。
    • Django按顺序遍历每一个URL模式,并停在与URL匹配的第一个URL模式,需要特别注意编写的顺序
    • 一旦某个URL模式匹配,Django就会导入并调用给定的视图,该视图是一个简单的Python函数(或基于类的视图方法)。该视图通过以下参数传递:
      • 一个HttpRequest实例
      • 如果匹配的URL模式没有返回任何命名组,则来自正则表达式的匹配作为位置参数提供
      • 关键字参数由路径表达式匹配的任何命名部分组成,并由可选的kwargs参数传给django.url.path()或django.urls.re_path()
    • 如果没有url模式匹配,或者在此过程中的任何点发生异常,Django将调用适当的错误处理视图

    2.简单示例

    给子路由添加前缀
    在子级中编写路由地址

    from django.urls import path,include
    from first_app import views
    
    urlpatterns = [
        path('first_request/', views.my_first_request),
        path('login_request/', views.login_request)
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在父级中添加前缀,include查找url

    from django.contrib import admin
    from django.urls import path,include
    from first_app import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        # path('first_request/', views.my_first_request),
        # path('login_request/', views.login_request)
        path('first_app/',include('first_app.urls'))
    ]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

  • 相关阅读:
    【深拷贝和浅拷贝】
    英国消费“避之不及”,东南亚“爱不释手”,TikTok Shop为何?
    即时通讯技术文集(第5期):零基础通信技术入门 [共15篇]
    微服务项目:尚融宝(50)(核心业务流程:标的管理(2))
    vscode 使用ES6调试js
    Kafka 基础概念及架构
    Boost ASIO:io_service 与 strand 的使用
    tcpdump 如何使用
    最受欢迎的11个Python开发软件
    JavaScript解密日记6
  • 原文地址:https://blog.csdn.net/m0_63953077/article/details/127888330