1.创建虚拟环境,创建项目mysite,创建app user ,
创建超级管理员 python manage.py createsuperuser (创建的的用户名密码是接下拉要用的)
2.前端发送登录请求。
//前端使用vue,axios需要自己做相关配置
//LoginForm:{
// username: "admin",
// password: 123456
// },
const {data:res} = this.$axios.get("api/users/login",{
params:this.LoginForm
})
3.在Django虚拟环境中:
pip install pip install djangorestframework
配置setting文件:
( 避免因为Django版本问题报错建议setting中首先 import os ,目前我的版本是3.1.3)
# 避免报错先导入os
import os
INSTALLED_APPS = [
# 在app中注册一下
'rest_framework.authtoken',
]
# 配置token验证机制,可以暂时不需要
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
)
}
4.配置url
# 在项目url中
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/users/', include('users.urls'))
]
# 在app url中
from django.urls import path
from . import views
urlpatterns = [
path("login", view = views.login),
]
5.在app中处理请求视图函数
from django.shortcuts import render
from rest_framework.authtoken.models import Token
from django.http.response import JsonResponse
from django.contrib.auth import authenticate
# Create your views here.
# 登录功能实现
def login(request):
# 从请求中获取用户名、密码
username = request.GET.get('username')
password = request.GET.get('password')
user = authenticate(username=username, password=password)
if user != None :
#删除原来的token
old_token = Token.objects.filter(user=user)
old_token.delete()
#创建新的token并传递给前端
token = Token.objects.create(user=user)
print(token)
return JsonResponse({
"status":200,
"message":"成功登录",
"token": token.key
})
else:
return JsonResponse({
"status":201,
"message":"登录失败,请校验用户名或者密码",
})
6. 测试,成功完成登录并派发token (用户名密码是第一步创建的用户名密码)
版权声明:本文为qq_37127153原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。