Django項目中使用JWT的實現(xiàn)代碼
1.requiremwnts:
- Django版本:2.2
- python版本:3.6
- djangorestframework版本:3.1
- djangorestframework-jwt版本:1.11
- MySQL版本:5.7
注意:使用Django 2.1以上的版本,MySQL數(shù)據(jù)庫必須在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中追加配置相關(guān)文件:
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中修改數(shù)據(jù)庫相關(guān)配置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 數(shù)據(jù)庫的類別 'NAME': 'test', # 數(shù)據(jù)庫的名字 'HOST': '127.0.0.1', # 數(shù)據(jù)庫的ip 'USER': 'root', # 用戶名 'PASSWORD': '5201314', # 密碼 'PORT': '3307' } }
6)在自己的本地數(shù)據(jù)庫中新建一個叫test的數(shù)據(jù)庫;
7)安裝相關(guān)的依賴包:
pip install djangorestframework-jwt
pip install djangorestframework markdown Django-filter
8)在django_jwt/urls.py配置相關(guān)的路由:
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)執(zhí)行下面兩句命令:
python manage.py makemigrations
python manage.py migrate
在數(shù)據(jù)庫中創(chuàng)建相應(yīng)的表。
12)創(chuàng)建一個超級用戶,用來測試token
python manage.py createsuperuser
13)運行項目,打開Postman軟件,測試項目:
第一步測試成功,能得到token
接著使用token
token值的前面記得要加入JWT,還要加上一個空格。
能正常進入首頁,如果沒有在headers加入token,是不能正常訪問首頁的。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
讓Django支持Sql Server作后端數(shù)據(jù)庫的方法
今天小編就為大家分享一篇讓Django支持Sql Server作后端數(shù)據(jù)庫的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05python實現(xiàn)計數(shù)排序與桶排序?qū)嵗a
這篇文章主要介紹了python計數(shù)排序與桶排序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03時間序列預(yù)測中的數(shù)據(jù)滑窗操作實例(python實現(xiàn))
滑動窗口操作非常普遍,非常有用,它們也很容易在Python中實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于時間序列預(yù)測中的數(shù)據(jù)滑窗操作python實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-03-03Python使用Selenium實現(xiàn)模擬登錄的示例代碼
Selenium(本文基于python3.8)是一個功能強大的自動化測試工具,它可以用于模擬用戶在瀏覽器中的行為,比如點擊、輸入、滾動等等,本教程將詳細介紹如何使用Python編寫一個模擬登錄地爬蟲,使用XPath等多種元素匹配方法,需要的朋友可以參考下2023-08-08Python利用socket模塊開發(fā)簡單的端口掃描工具的實現(xiàn)
這篇文章主要介紹了Python利用socket模塊開發(fā)簡單的端口掃描工具的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01python實現(xiàn)TCP服務(wù)器端與客戶端的方法詳解
這篇文章主要介紹了python實現(xiàn)TCP服務(wù)器端與客戶端的方法,以實例形式詳解分析了Python實現(xiàn)服務(wù)器端與客戶端的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-04-04Python使用機器學習模型實現(xiàn)溫度預(yù)測詳解
使用?Python?可以使用機器學習模型進行溫度預(yù)測。常用的模型有回歸分析、隨機森林等。本文就來和大家來了具體實現(xiàn)方法,希望對大家有所幫助2023-01-01