0
点赞
收藏
分享

微信扫一扫

Django2登入demo说明rest_framework基本使用

kolibreath 2022-03-11 阅读 53

1.rest_framework配置

1.安装:

pip install djangorestframework

2.setting配置

增加:
'rest_framework',

  1. 在user-> urls.py添加类视图:
from django.conf.urls import url

from apps.user.views import UserLogin


urlpatterns = [
    url(r'^user/login',UserLogin.as_view())
]
  1. 添加view:
from django.shortcuts import render

from rest_framework.views import APIView

from apps.user.service.UserService import LoginService
# Create your views here.


class UserLogin(APIView):
    
    '''用户登入,生成token'''
    def post(self, request,  *args, **kwargs):
        return LoginService.login(request)


  1. 为了代码清晰加入了service,只做逻辑,这里使用rest_framework.authtoken token验证,后面自己生成后保存到redis等

这里使用需要在setting增加:

    'rest_framework.authtoken',
    执行:
    python manage.py migrate 
import binascii
from django.contrib.auth import authenticate,login
from rest_framework.authtoken.models import Token
import os
class LoginService():

    @classmethod
    def userlogin(cls,request):
        #1.获取用户名和密码,使用django内置的authenticate进行验证
        user = authenticate(username=request.data['username'],password=request.data['password'])
        if user:
            #2.删除老的token
            old_token = Token.objects.filter(user=user)
            old_token.delete()
            #3.创建新的token并传递给前端
            token = Token.objects.create(user=user)
            #3.生成对应的token
            #token = binascii.hexlify(os.urandom(20)).decode()
            return {'data':{'token':token.key},'message':u'用户登入成功'}
        else:
            return {'status':0,'message':u'登入失败,用户名或者密码错误'}

  1. 通过createuser创建用户

  1. 通过postman进行验证

这样基本的验证就成功

登入失败

举报

相关推荐

0 条评论