Django API view 登录认证
2024-09-08 02:52:17
文件分类
url
from django.contrib import admin
from django.urls import path, re_path
from django.urls import include urlpatterns = [
re_path('^api/(?P<version>[v1|v2]\w+)/', include('app01.urls')),
]
from django.urls import path, re_path
from django.urls import include
from app01.views import account, coursehost, newspapers urlpatterns = [
re_path('login/$', account.LoginView.as_view()),
]
view
"""
* coding: utf-8 CreateTime:2019/12/17
Version: v1
DocName: account.py
Edit: Riven
Effect: Control the user login
SourceStorageLocation: RivenShop / app01 / views / account.py
Modify and add function record:
ModifyTime:
1.
2.
Add function Time :
1.
2. """ from app01.models import *
from utils.response import * import uuid
from rest_framework.views import APIView
from rest_framework.response import Response class LoginView(APIView):
"""
Interface for user authentication
""" def post(self, request, *args, **kwargs):
"""
Authentification of user
:param request: request correlation data
:param args: URL transmit args
:param kwargs: URL transmit kwargs
""" # acquire status object
ret = TokenResponse()
try:
user = request.data.get('user')
pwd = request.data.get('pwd')
user = Account.objects.filter(username=user, password=pwd).first()
if not user:
ret.code = 1001
ret.error = '用户名密码错误'
else:
uid = str(uuid.uuid4())
UserAuthToken.objects.update_or_create(user=user, defaults={'token': uid})
ret.token = uid except Exception as e:
ret.code = 1003 # ret.dict == return class init attr of dict
return Response(ret.dict)
自定义状态码类:
"""
* coding: utf-8 CreateTime:2019/12/17
Version: v1
DocName: response.py
Edit: Riven Effect: create status code return view SourceStorageLocation: RivenShop / utils / response.py Modify and add function record:
ModifyTime:
1.
2.
Add function Time :
1.
2. """ class BaseResponse(object): def __init__(self):
self.code = 1000
self.data = None
self.error = None @property
def dict(self):
return self.__dict__ class TokenResponse(BaseResponse):
def __init__(self):
super(BaseResponse).__init__()
self.code = 1000
self.token = None
最新文章
- python中实现定时器Timer
- 数据导入读取read.table函数详解,如何读取不规则的数据(fill=T)
- iOS 代理与block 逆向传值 学习
- CentOS7 安装 PostGIS方法(适合国内网络
- android常用工具类
- 自己实现的sax XML解析,可能会有误
- Visual Studio 2012 和 SVN 结合实现版本控制 AnkhSvn
- 【BZOJ2208】【JSOI2010】连通数 传递闭包
- VB网络编程中Winsock的使用
- jspm 简介
- 为你的 Hadoop 集群选择合适的硬件
- [Python] Hermite 插值
- Entity Framework 数据生成选项DatabaseGenerated(转)
- Sql Server 2016数据库生成带数据的脚本
- Java面向对象之异常(自定义异常)
- 点击空白处--某个div 消失
- BZOJ4557:[JLOI2016/SHOI2016]侦察守卫——题解
- 2014ACM/ICPC亚洲区广州站题解
- 区块链核心技术:拜占庭共识算法之PBFT
- IIS注册.NET
热门文章
- SQL Server 数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
- Python之路【第十五篇】开发FTP多线程程序
- ZYNQ笔记(3):GPIO的使用(MIO、EMIO)——led灯
- C++ 的多继承与虚继承
- Redis Cluster: (error) MOVED
- selenium中的元素操作之三大等待(一)
- window 包管理器--Chocolatey
- 数组中[::-1]或[::-n]的区别,如三维数组[:,::-1,:]
- JDBC简单增删改查实现(单表)
- CSS疑难杂症