我正在阅读有关 Django 的 Djoser 框架。
我发现有两个 url 模式要包含,它们都是相同的:
urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.jwt')),
]
我以为 Django 总是拿第一场比赛
怎么可能选择第二条路径?
我正在阅读有关 Django 的 Djoser 框架。
我发现有两个 url 模式要包含,它们都是相同的:
urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.jwt')),
]
我以为 Django 总是拿第一场比赛
怎么可能选择第二条路径?
您提供的 urlpatterns 是:
urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.jwt')),
]
从函数的使用include
可以看出,这些模式只是包含了其他模式。请参阅包括其他 URLconfs [Django 文档]。
如果我们查看来自'djoser.urls'
(GitHub)的 url,它们基本上看起来像:
router = DefaultRouter() router.register("users", views.UserViewSet) User = get_user_model() urlpatterns = router.urls
所以基本上使用include
this 最终会生成一堆看起来像的 url 模式auth/users/...
转到'djoser.urls.jwt'
(GitHub)中的模式:
urlpatterns = [ re_path(r"^jwt/create/?", views.TokenObtainPairView.as_view(), name="jwt-create"), re_path(r"^jwt/refresh/?", views.TokenRefreshView.as_view(), name="jwt-refresh"), re_path(r"^jwt/verify/?", views.TokenVerifyView.as_view(), name="jwt-verify"), ]
基本上以auth/jwt/create
等结尾。
从这个角度来看,模式显然不同,因此无需担心。