假设我正在 Django 中创建一个 Todo 应用程序,传统上我会在 base_project urls.py 文件中包含我的应用程序的路径。然而,今天我遇到了一个教程,其中他们使用路由器来实现我已经说过的相同目的。 为什么我想使用路由器而不是在 urls.py 文件中包含路径? 作为参考,这里是教程中的一个片段,位于 https://www.digitalocean.com/community/tutorials/build-a-to-do-application-using-django-and-react
# backend/urls.py
from django.contrib import admin
from django.urls import path, include # add this
from rest_framework import routers # add this
from todo import views # add this
router = routers.DefaultRouter() # add this
router.register(r'todos', views.TodoView, 'todo') # add this
urlpatterns = [
path('admin/', admin.site.urls), path('api/', include(router.urls)) # add this
]
这里的backend是主要的django项目名称。
两者的工作原理相同。您可以在 urlpatterns 中添加 url。我遇到了和你一样的情况,在教程中他们使用路由而不是 url 模式,但我研究过并且两者的工作原理相同。
url_patterns 是各个 URL 路由的定义列表。每个路由通常与视图函数或基于类的视图相关联。 相反,Routers 自动处理视图集的 URL 路由,减少样板文件并使管理 URL 变得更容易,尤其是在使用 RESTful 模式时。例如,DefaultRouter类注册 ViewSet 并为其处理标准 RESTful 路由的创建(列表、创建、检索、更新、部分更新、销毁)。您不需要手动定义每个 URL 模式。