AI学习吧-登录注册
登录注册注销
如果需要给表设置权限,没有登录就不可以查看,只需要在每个视图函数之前加上Auth_classes=[ ]即可!
增加两张表,做登录认证
#models.py
#做登录验证
class Users(models.Model):
user=models.CharField(max_length=32)
pwd=models.CharField(max_length=32)
type=((1,"VIP"),(2,"SVIP"),(3,"SSVIP"))
user_type=models.IntegerField(choices=type) class Usertoken(models.Model):
token=models.CharField(max_length=128)
user=models.OneToOneField("Users")
url("login", LoginView.as_view()),
#app01/view/login.py from rest_framework.views import APIView
from ..models import *
from ..utils.response import BaseResponse
from rest_framework.response import Response class LoginView(APIView):
"""
1000:成功
1001:用户名或者密码错误
1002:异常错误
"""
def post(self, request):
response=BaseResponse() #重写了这个装填码的类
try:
print(request.data)
user = request.data.get("user")
pwd = request.data.get("pwd") user = Users.objects.filter(user=user, pwd=pwd).first()
import uuid
random_str = uuid.uuid4()
if user: Usertoken.objects.update_or_create(user=user, defaults={"token": random_str})
response.user = user.user
response.token= random_str
else:
response.code= 1001
response.msg= "用户名或者密码错误"
except Exception as e:
response.code = 1002
response.msg= str(e) return Response(response)
#app01/utils/response.py
class BaseResponse(object):
def __init__(self,):
self.code=1000
self.data=""
self.error=""
@property
def dict(self):
return self.__dict__
if __name__ == '__main__':
response=BaseResponse()
response.xxx=123
print(response.dict)
结合VUE即可做登录验证
设置session
为什么设置session? 由于在做好了登录页面之后发现,刷新之后就会回到登录之前的页面,所以需要给登录的用户在浏览器上存储状态,需要设置session,
里边放上username和token,这样刷新页面就会将用户登录状态保存一端时间。设置session的方法: 在django中设置session 设置cookie:response.set_cookie("k1","v3",20) #表示登录状态为20min 获取cookie:request.cookie{"k1":"v3"} 设置session:request.session["k2"]="v4" 获取session:request.session.get("k2") 在vue中设置cookie 设置cookie:COOKIE.set("k1","v1",20min) 获取cookie:COOKIE.get("") 清除cookie:COOKIE.REMOVE("K1")
账户注销--使用vue
也就是将,cookie中的username,usertoken设置为空
具体操作:

AI学习吧-登录注册的更多相关文章
- Python学习:8.小项目之登录注册验证
简介 本次项目登录注册验证是对之前学习知识点的加深学习,这次项目的练习的知识点有函数.判断语句.循环语句.文件操作等. 项目流程 运行代码之后,输出登录或者注册选项. 当选择登录之后,输入用户名密码, ...
- php学习历程1——注册、登录(面向过程、面向对象)
首先放一张天空之城 Php入门来的第一个小项目,首先做的是一个简陋的文章管理系统.有登录.注册.文章list.添加文章.修改文章.删除文章.分页这几个小功能. 面向过程的编码 面向对象的编码 首先做的 ...
- Vue学习之路之登录注册实例代码
Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...
- Nodejs学习总结 -Express 登录注册示例(二)
项目创建后,我们来做个登录注册实例,详细操作步骤如下. 1.新建项目demo ,具体操作步骤参考上一章内容 https://www.cnblogs.com/Anlycp/ 2.添加mysql和sess ...
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- HTML登录注册界面怎么制作?
在没有学习CSS样式的前提下,是如何做一个简单的注册界面的. 一.表单标签(form) 首先我们先写一个<form></form>的标签,form标签属于表单标签,通常我们的登 ...
- spring boot 登录注册 demo (四) -- 体验小结
之前没有折腾过Spring,直接上来怼Spring Boot异常痛苦,参考着官网的guide(https://spring.io/guides)写了几个demo: spring boot 跑起来确是方 ...
- SSM博客登录注册
我的博客采用的是 spring+springmvc+mybatis框架,用maven和git管理项目,之后的其他功能还有待进一步的学习. 首先新建一个maven项目,我的项目组成大概就这样, 建立好项 ...
随机推荐
- Javascript - ExtJs - Itemselector
引入扩展文件 Extjs4.2根目录下: examples \ ux \ css \ images (这是选择按钮的图片资源) examples \ ux \ css \ ItemSelector.c ...
- 关于VXLAN的认识-----基础知识
一.什么是VXLAN 普通的VLAN数量只有4096个,无法满足大规模云计算IDC的需求,因为目前大部分IDC内部结构主要分为两种L2,L3. L2结构里面,所有的服务器都在一个大的局域网里面,TOR ...
- 【多线程补充】SimpleDateFormat非线程安全与线程中、线程组中异常的处理
1.SimpleDateFormat非线程安全的问题 类SimpleDateFormat主要负责日期的转换与格式化,但在多线程环境中,使用此类容易造成数据转换及处理的不正确,因为SimpleDateF ...
- SpringTask定时任务的使用
实现定时任务简单的有四种方式:Timer\ScheduledThreadPool线程池\quartz(常用),还有另一种就是springtask. 都说springtask上手简单,于是简单的研究一下 ...
- 刷题之路第三题--Longest Substring Without Repeating Characters
问题简介:求给定字符串中最长的字符不重复的字符串的长度 问题详解: 给定一个字符串,寻找给定字符串中包含的最长的字符不重复的字符串的长度 注:答案必须是子字符串,不是子序列 是连续的字符不重复的字符串 ...
- Ettercap内网渗透
最近网速很卡,于是想到有人在蹭网,怎么捉弄一下呢? 1.开启ettercap ettercap -G 2. Hosts->Scan,List 发现有几个新的地址192.168.1.71,192. ...
- Kivy折腾笔记
最近想用Python开发APP,选择kivy,记录过程 首先是源码安装,各种蛋疼的报错放弃了.cython高版本有问题. python3 -m pip install cython==0.23 pyt ...
- python目标定位(借鉴csdn上大神)
写博客是为了记录下来,毕竟好多东西记不住,看过就忘了,收藏又太多,还不如搬运到自己博客下面,随时可翻~~~ 近期再学目标识别与定位,看着原理都很简单,但是真自己做,又觉得困难重重. csdn上一个大神 ...
- *445. Add Two Numbers II
1. 原始题目 You are given two non-empty linked lists representing two non-negative integers. The most si ...
- /etc/shadow中密码段的生成方式
why? 为什么要手动生成? 通常情况下,使用passwd命令即可以为用户设置密码,但是在某些情况下是需要先获得加密后的密码然后去操作的,比如,kickstart文件中的rootpw指令,ansibl ...