文件分类

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

Django API view 登录认证的更多相关文章

  1. Django之auth登录认证

    前言:我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的 ...

  2. django自带登录认证与登录自动跳转

    # 导入django自带模块 from django.contrib.auth import authenticate, login, logout # 使用authenticate进行认证,使用lo ...

  3. django rest_framework 实现用户登录认证

    django rest_framework 实现用户登录认证 1.安装 pip install djangorestframework 2.创建项目及应用 创建过程略 目录结构如图 3.设置setti ...

  4. Django项目:CMDB(服务器硬件资产自动采集系统)--03--03CMDB信息安全API接口交互认证

    #settings.py """ Django settings for AutoCmdb project. Generated by 'django-admin sta ...

  5. Django+JWT实现Token认证

    对外提供API不用django rest framework(DRF)就是旁门左道吗? 基于Token的鉴权机制越来越多的用在了项目中,尤其是对于纯后端只对外提供API没有web页面的项目,例如我们通 ...

  6. Django Rest framework 之 认证

    django rest framework 官网 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest fra ...

  7. [原创]django+ldap实现统一认证部分二(python-ldap实践)

    前言 接上篇文章 [原创]django+ldap实现统一认证部分一(django-auth-ldap实践) 继续实现我们的统一认证 python-ldap 我在sso项目的backend/lib/co ...

  8. Django 中的用户认证

    Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任 ...

  9. Springboot-shiro-redis实现登录认证和权限管理

    Springboot-shiro-redis实现登录认证和权限管理 在学习之前: 首先进行一下Apache Shiro和Shiro比较: Apache Shiro是一个功能强大.灵活的,开源的安全框架 ...

随机推荐

  1. 2019-7-16 import / from...import... 模块的调用

    模块调用的总结:如果你是pycharm打开文件,会自动帮你把文件根目录加到system.path中,你要调用模块直接以根目录为基准开始找.1.假如你要调用和文件根目录为同级的文件,你直接import ...

  2. C语言学习笔记01——C语言概述

    作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...

  3. golang module 下载外网资源失败解决办法

    用 golang 1.11 module 特性时,需要下载golang.org等外网地址的库文件 可以创建环境变量GOPROXY,使用Aliyun的镜像 go公共代理文档 简介 go module公共 ...

  4. (十)pdf的构成之交叉引用表

    交叉引用表(xref) 其中包含对文档中所有对象的引用.交叉引用表的目的是允许随机访问文件中的对象,因此我们不需要读取整个PDF文档来定位特定对象.每个对象由交叉​​引用表中的一个条目表示.(该表保存 ...

  5. jupyter notebook在 mac 使用

    1. 查看当前 conda 所拥有的环境列表 conda env list 2. 选择要进入的环境 source activate your_env_name 3. 启动 jupyter jupyte ...

  6. yii框架无限极分类的做法

    用yii框架做了一个无限极分类,主要的数组转换都是粘贴的别人的代码,但还是不要脸的写出来,方便以后自己看 用的是递归,不是path路径 控制器: protected function subtree( ...

  7. Redis 多级缓存架构和数据库与缓存双写不一致问题

    采用三级缓存:nginx本地缓存+redis分布式缓存+tomcat堆缓存的多级缓存架构 时效性要求非常高的数据:库存 一般来说,显示的库存,都是时效性要求会相对高一些,因为随着商品的不断的交易,库存 ...

  8. IDEA设置虚拟机参数

    第一步:打开“Run->Edit Configurations”菜单 第二步:选择“VM Options”选项,输入你要设置的VM参数 第三步:点击“OK”.“Apply”后设置完成

  9. Golang_小程序学golang

    1 前置条件 Golang基本情况自行baidu/google 1.1 环境与工具 IDE:liteide (windows ).mingw-w64 (gcc) DB:SQL Server 2008 ...

  10. JavaScript变量存储浅析(二)

    Hello,上一篇(http://www.cnblogs.com/souvenir/p/4969399.html)我们简单的分享了JS中的变量存储原理,但是并未结束,我们漏掉了什么. 对了,就是关于对 ...