企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
Django 如何处理一个请求 ---------------------- - `ROOT_URLCONF` - `URLconf` - 匹配 - 调用视图并传参 ROOT_URLCONF ---------------- 项目配置文件 `settings.py` 中的一个变量。定义了 **根URLconf** 的文件位置。 如果传入 `HttpRequest` 对象具有 `urlconf` 属性(由中间件设置),则将使用其值代替 `ROOT_URLCONF` 设置。 ~~~ # mysite/mysite/settings.py # ... snip ... ROOT_URLCONF = 'mysite.urls' # ... snip ... ~~~ URLconf ----------- #### `urlpatterns` `urlpatterns` 变量是一个列表,定义了路由规则。 由 `django.urls.path()` 或 `django.urls.re_path()` 实例组成。 ~~~ # mysite/mysite/urls.py from django.urls import path, re_path, include from . import views urlpatterns = [ path('', views.index), path('index/', views.index), path('polls/', include('polls.urls')), ] # mysite/polls/urls.py from django.urls import path, re_path from . import views urlpatterns = [ # ... snip ... ] ~~~ 匹配 ---- - 依次匹配每个 URL 模式 - 在匹配到的第一个 URL 模式处停止。 调用视图并传参 -------------- 调用的是一个 Python 函数,或是基于类的视图。 #### 参数传递规则: - 第一个参数:`HttpRequest` 实例 - 如果匹配到未命名组,则作为位置参数传入 - 如果匹配到命名组,则作为关键字参数传入 - 如果同时匹配到命名组和未命名组,则只将命名组以关键字参数传入