Goo*_*nic 7 django django-views django-authentication jwt django-rest-framework
完整错误:无法为 API 设置“DEFAULT_AUTHENTICATION_CLASSES”导入“rest_framework_jwt.authentication.JSONWebTokenAuthentication”。ImportError:无法从“django.utils.encoding”导入名称“smart_text”
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
),
}
Run Code Online (Sandbox Code Playgroud)
这是虚拟环境中的 pip freeze:
(backend) PS D:\js\backend> pip freeze
asgiref==3.5.1
Django==4.0.4
django-cors-headers==3.11.0
djangorestframework==3.13.1
djangorestframework-jwt==1.11.0
djangorestframework-simplejwt==5.1.0
mysqlclient==2.1.0
PyJWT==1.7.1
pytz==2022.1
sqlparse==0.4.2
tzdata==2022.1
Run Code Online (Sandbox Code Playgroud)
在错误的中间,它解决了装饰器的views.py中的一些行:
from http.client import HTTPResponse
from multiprocessing import context
from django.shortcuts import render
from django.http import HttpResponse, Http404, JsonResponse
from .models import Tweet
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import api_view, permission_classes
from rest_framework import status
Run Code Online (Sandbox Code Playgroud)
我不确定它们是否有关联
mon*_*nim 13
\'rest_framework_jwt.authentication.JSONWebTokenAuthentication\'这是由djangorestframework-jwt提供的,不再被维护。只需卸载它\n而是使用 \'rest_framework_simplejwt.authentication.JWTAuthentication\'来自djangorestframework-simplejwt的\n
1 -安装djangorestframework-simplejwt:pip install djangorestframework-simplejwt
2-你的\'DEFAULT_AUTHENTICATION_CLASSES\'应该是这样的:
\'DEFAULT_AUTHENTICATION_CLASSES\': (\n \n \'rest_framework.authentication.SessionAuthentication\',\n \'rest_framework.authentication.BasicAuthentication\',\n \'rest_framework_simplejwt.authentication.JWTAuthentication\', \n),\nRun Code Online (Sandbox Code Playgroud)\n3 - 在根urls.py文件(或任何其他 url 配置)中,包含 Simple JWT\xe2\x80\x99sTokenObtainPairView和TokenRefreshView视图的路由:
from rest_framework_simplejwt.views import (\n TokenObtainPairView,\n TokenRefreshView,\n)\n\nurlpatterns = [\n ...\n path(\'api/token/\', TokenObtainPairView.as_view(), name=\'token_obtain_pair\'),\n path(\'api/token/refresh/\', TokenRefreshView.as_view(), name=\'token_refresh\'),\n ...\n]\nRun Code Online (Sandbox Code Playgroud)\n有关更多信息,请查看官方文档
\n| 归档时间: |
|
| 查看次数: |
13435 次 |
| 最近记录: |