【发布时间】:2022-01-26 17:31:50
【问题描述】:
我试图弄清楚这些端点在 django rest 框架中是如何工作的。
urls.py
urlpatterns = [
path('api-auth', include('rest_framework.urls', namespace='rest_framework')),
path('login', django_views.LoginView.as_view(template_name='rest_framework/login.html'), name='login'),
path('logout', django_views.LogoutView.as_view(), name='logout'),
path('register', views.UserCreate.as_view()),
path('get_jwt_token', obtain_jwt_token),
path('eos_verify_jwt_token', views.EOSVerifyJSONWebToken.as_view()),
]
我得到以下模式:
Using the URLconf defined in ugh_studios_webservices.urls, Django tried these URL patterns, in this order:
api/ api-auth login/ [name='login']
api/ api-auth logout/ [name='logout']
api/ login [name='login']
api/ logout [name='logout']
api/ register
api/ get_jwt_token
api/ eos_verify_jwt_token
admin/
The current path, api/api-auth, didn’t match any of these.
为什么有两个登录端点?
我想要做的是有以下端点:
- 登录端点
- 注销端点
- 用户注册端点
- JWT 令牌请求 + 验证端点 - 这似乎有效
- 自定义验证用户登录(用户名 + 密码)端点(需要自定义响应以与单独的应用程序集成,它需要特定的响应正文)
- 需要在可浏览的 API https://www.django-rest-framework.org/topics/browsable-api/ 中查看 - 为什么除了“注册”url 之外我的所有 url 都无法查看?
- 需要能够同时处理 HTTP POST 请求(用于验证/登录)以及 html 模板/视图
我也不想创建重复的代码,rest_framework 似乎带有一些用于登录和注销的默认视图。我在堆栈溢出中看到的所有信息都建议创建新的视图类……等等。但是,如果其他框架给了我一些我根本没有正确设置的默认值,我为什么要这样做呢?在我看来,其余框架已经拥有我需要的一切,但我没有正确设置 urls.py。
编辑:
在将我的 url 模式更改为此之后,我似乎得到了我想要的:
urlpatterns = [
path('', include('rest_framework.urls', namespace='rest_framework')),
path('register', views.UserCreate.as_view()),
path('get_jwt_token', obtain_jwt_token),
path('eos_verify_jwt_token', views.EOSVerifyJSONWebToken.as_view()),
]
但是,我仍然需要弄清楚如何让登录名指向正确的 url。登录后似乎重定向到 /accounts/profile。不过,我没有看到默认的 html 模板,所以也许这不存在?
【问题讨论】:
标签: django django-rest-framework