登录注册注销

如果需要给表设置权限,没有登录就不可以查看,只需要在每个视图函数之前加上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学习吧-登录注册的更多相关文章

  1. Python学习:8.小项目之登录注册验证

    简介 本次项目登录注册验证是对之前学习知识点的加深学习,这次项目的练习的知识点有函数.判断语句.循环语句.文件操作等. 项目流程 运行代码之后,输出登录或者注册选项. 当选择登录之后,输入用户名密码, ...

  2. php学习历程1——注册、登录(面向过程、面向对象)

    首先放一张天空之城 Php入门来的第一个小项目,首先做的是一个简陋的文章管理系统.有登录.注册.文章list.添加文章.修改文章.删除文章.分页这几个小功能. 面向过程的编码 面向对象的编码 首先做的 ...

  3. Vue学习之路之登录注册实例代码

    Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...

  4. Nodejs学习总结 -Express 登录注册示例(二)

    项目创建后,我们来做个登录注册实例,详细操作步骤如下. 1.新建项目demo ,具体操作步骤参考上一章内容 https://www.cnblogs.com/Anlycp/ 2.添加mysql和sess ...

  5. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  6. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  7. HTML登录注册界面怎么制作?

    在没有学习CSS样式的前提下,是如何做一个简单的注册界面的. 一.表单标签(form) 首先我们先写一个<form></form>的标签,form标签属于表单标签,通常我们的登 ...

  8. spring boot 登录注册 demo (四) -- 体验小结

    之前没有折腾过Spring,直接上来怼Spring Boot异常痛苦,参考着官网的guide(https://spring.io/guides)写了几个demo: spring boot 跑起来确是方 ...

  9. SSM博客登录注册

    我的博客采用的是 spring+springmvc+mybatis框架,用maven和git管理项目,之后的其他功能还有待进一步的学习. 首先新建一个maven项目,我的项目组成大概就这样, 建立好项 ...

随机推荐

  1. 编程基础 - 0x00008 的0x代表什么?

    总结: 二进制:0dXXXX 八进制:0XXXX 十六进制:0xXXXX ------------------------------- 1- 十六进制 以“0x”开始的数据表示16进制,计算机中每位 ...

  2. 使用SpringSocial开发微信登录

    ⒈编写微信用户对应的数据结构 package cn.coreqi.social.weixin.entities; /** * 微信用户实体类 */ public class WeixinUserInf ...

  3. 【转】python模块分析之unittest测试(五)

    [转]python模块分析之unittest测试(五) 系列文章 python模块分析之random(一) python模块分析之hashlib加密(二) python模块分析之typing(三) p ...

  4. ubuntu server命令行搭建虚拟专用网

    问题: 在做一个国外的开源项目,需要用到很多 ubuntu 上特定版本的应用,由于国内墙的问题,导致Ubuntu 14.04在需要添加一些国外的库的时候(add-apt-repository ppa: ...

  5. Delphi 使用 Datasnap 的几种三层应用技术总结

    Delphi 使用 Datasnap 进行三层应用开发,积累了几种技术,总结如下: 1.(推荐!)在 Datasnap 服务端 使用 TDatasetProvider,客户端 使用   TDSProv ...

  6. Food HDU - 4292 网络流 拆点建图

    http://acm.hdu.edu.cn/showproblem.php?pid=4292 给一些人想要的食物和饮料,和你拥有的数量,问最多多少人可以同时获得一份食物和一份饮料 写的时候一共用了2种 ...

  7. inux下配置rsyncd服务

    创建配置文件 touch /etc/rsyncd/rsyncd.conf #主配置文件 touch /etc/rsyncd/rsyncd.secrets #用户名密码文件,一组用户一行,用户名和密码使 ...

  8. (常用)loogging模块及(项目字典)

    loogging模块 '''import logging logging.debug('debug日志') # 10logging.info('info日志')   # 20logging.warni ...

  9. node ,npm和nvm 版本的管理

    node npm :node 的包管理 nvm :node 的版本管理 node -v ---->查看node 的版本  (v---->version) npm -v ----->n ...

  10. T-SQL 日期函数

    GETDATE() 它将返回当前日期和时间. 语法 上述函数的语法: GETDATE() 例 以下查询将返回当前日期以及MS SQL Server中的时间. Select getdate() as c ...