溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Django項目中使用JWT

發布時間:2021-03-23 15:49:02 來源:億速云 閱讀:279 作者:Leah 欄目:開發技術

怎么在Django項目中使用JWT?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1.requiremwnts:

  • Django版本:2.2

  • python版本:3.6

  • djangorestframework版本:3.1

  • djangorestframework-jwt版本:1.11

  • MySQL版本:5.7

注意:使用Django 2.1以上的版本,MySQL數據庫必須在5.5以上的版本。

2.新建項目

1)使用pycharm新建一個Django項目,我的項目名稱叫:django_jwt

2)使用語句 python manage.py startapp django_restframework_jwt新建一個名為django_restframework_jwt的app

3)在settings.py加入注冊代碼:

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',

  # 新添加
  'django_restframework_jwt',
  'rest_framework',
]

4)在settings.py中追加配置相關文件:

REST_FRAMEWORK = {
  'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.IsAuthenticated', #必須有
  ),
  'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
  )
}
import datetime
JWT_AUTH = {
 # 指明token的有效期
 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
}

5)settings.py中修改數據庫相關配置:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql', # 數據庫的類別
    'NAME': 'test', # 數據庫的名字
    'HOST': '127.0.0.1', # 數據庫的ip
    'USER': 'root', # 用戶名
    'PASSWORD': '5201314', # 密碼
    'PORT': '3307'
  }
}

6)在自己的本地數據庫中新建一個叫test的數據庫;

7)安裝相關的依賴包:

pip install djangorestframework-jwt
pip install djangorestframework markdown Django-filter

8)在django_jwt/urls.py配置相關的路由:

from django.contrib import admin
from django.urls import path, include
from django_restframework_jwt.views import IndexView

urlpatterns = [
  path('admin/', admin.site.urls),
  path('jwt/', include('django_restframework_jwt.urls')),
  path('index/', IndexView.as_view(), name='index'),
]

9)在django_restframework_jwt/views.py寫一個測試的視圖:

from django.shortcuts import render, HttpResponse
from rest_framework.views import APIView


class IndexView(APIView):
  """
  首頁
  """

  def get(self, request):
    return HttpResponse('首頁')

10)新建django_restframework_jwt/urls.py文件,修改成下面的代碼:

from django.urls import path
from rest_framework_jwt.views import obtain_jwt_token

app_name = 'jwt'
urlpatterns = [
  path('jwt_token_auth/', obtain_jwt_token),

]

11)執行下面兩句命令:

python manage.py makemigrations
python manage.py migrate

在數據庫中創建相應的表。

12)創建一個超級用戶,用來測試token

python manage.py createsuperuser

13)運行項目,打開Postman軟件,測試項目:

怎么在Django項目中使用JWT

第一步測試成功,能得到token

接著使用token

怎么在Django項目中使用JWT

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女