Django djoser 有两个相同的 url
Django djoser has two same urls
我正在阅读 Django 的 Djoser 框架。
我发现有两个 url 模式要包含,它们都是相同的:
urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.jwt')),
]
我以为 Django 总是拿第一场比赛
怎么可能选择了第二条路径?
您提供的url模式是:
urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.jwt')),
]
从函数的用法include
可以看出,这些模式只是包括其他模式。参见 Including other URLconfs [Django docs]。
如果我们查看 'djoser.urls'
(GitHub) 中的 url,它们基本上看起来像:
router = DefaultRouter()
router.register("users", views.UserViewSet)
User = get_user_model()
urlpatterns = router.urls
所以基本上使用 include
这最终会生成一堆看起来像 auth/users/...
的 url 模式
转到 '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
结束,等等
看这个模式明显不同所以不用担心
我正在阅读 Django 的 Djoser 框架。
我发现有两个 url 模式要包含,它们都是相同的:
urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.jwt')),
]
我以为 Django 总是拿第一场比赛
怎么可能选择了第二条路径?
您提供的url模式是:
urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.jwt')),
]
从函数的用法include
可以看出,这些模式只是包括其他模式。参见 Including other URLconfs [Django docs]。
如果我们查看 'djoser.urls'
(GitHub) 中的 url,它们基本上看起来像:
router = DefaultRouter() router.register("users", views.UserViewSet) User = get_user_model() urlpatterns = router.urls
所以基本上使用 include
这最终会生成一堆看起来像 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
结束,等等
看这个模式明显不同所以不用担心