当前位置: 首页 > news >正文

网站没有后台登陆文件夹盐城网站定制

网站没有后台登陆文件夹,盐城网站定制,德州网站建设招聘,房地产市场现状文章目录 功能整体架构流程搭建平台环境子功能先创建用户表 并同步到数据库1.用户注册密码存储 -- 哈希算法唯一索引引发的重复问题 try登陆状态保持 -- 详细看用户登录状态 2. 用户登录会话状态时间 cookie用户登录状态校验 3. 网站首页4.退出登录5.笔记模块 列表页添加笔记 … 文章目录 功能整体架构流程搭建平台环境子功能先创建用户表 并同步到数据库1.用户注册密码存储 -- 哈希算法唯一索引引发的重复问题 try登陆状态保持 -- 详细看用户登录状态 2. 用户登录会话状态时间 cookie用户登录状态校验 3. 网站首页4.退出登录5.笔记模块 列表页添加笔记 补充哈希算法 功能 Django搭建的在线云笔记项目 支持如下功能 用户登录、注册登录用户的笔记创建、展示页面登录状态检测登陆状态【免登录】设置扩展-- 删除、更改【没写】 源码GitHub云笔记小项目 资源Django框架练习之云笔记项目 建议大家多使用git练习从GitHub上下载资源 整体架构流程 搭建平台环境 基于pycharm社区版本搭建 有的可能命令行使用python3y语句有效果 我的是python 看个人 # 命令行创建 1. 创建项目 django-admin startproject tedu_note 2. 创建应用 python manage.py startapp user # 【注意 python3 manage.py startapp user 可能没有效果】 3. 创建数据库tedu_note # [Navicat直接登录手动创建]4. 配置settings.py 5. 启动项目 python manage.py runserver 【注意 python3 manage.py runserver没有效果】 子功能 先创建用户表 并同步到数据库 创建用户表 class User(models.Model):username models.CharField(verbose_name用户名,max_length30,uniqueTrue)password models.CharField(密码,max_length32)created_time models.DateTimeField(创建时间,auto_now_add True) # 第一次被创建时自动设置为当前日期和时间updated_time models.DateTimeField(更新时间,auto_now True) # 在模型的任何 save() 操作时自动设置为当前日期和时间def __str__(self): # 影响输出格式return username %s % (self.username)同步数据库 使用的是python 不是python3 python manage.py makemigrations python manage.py migrate 1.用户注册 views.py # views.py文件中的视图函数 def reg_view(request):#注册if request.method GET:# GET 返回页面return render(request,user/register.html)elif request.method POST:username request.POST[username]pass1 request.POST[password_1]pass2 request.POST[password_2]# POST 处理提交数据# 1. 密码一致if pass1 ! pass2:return HttpResponse(两次输入密码不一致)# 2.当前用户名是否可用 检查是否注册old_user User.objects.filter(usernameusername)if old_user:return HttpResponse(用户名已注册)# 插入数据 【明文处理】User.objects.create(usernameusername,password pass1)return HttpResponse(注册成功)上述代码问题 ​ 明文密码如何处理 ​ 多用户同时并行插入问题 ​ 产品经理要求注册则免登陆一天这功能怎么做 密码存储 – 哈希算法 直接使用明文密码的潜在风险 需要加密 def reg_view(request):#注册if request.method GET:# GET 返回页面return render(request,user/register.html)elif request.method POST:username request.POST[username]pass1 request.POST[password_1]pass2 request.POST[password_2]# POST 处理提交数据# 1. 密码一致if pass1 ! pass2:return HttpResponse(两次输入密码不一致)# 哈希算法 - 给定明文 计算出一段定长的 不可逆的值 md5 sha-256# 特点# 1. 定长输出 不管明文输入长度多少 哈希值定长 md5 - 32位 16进制 【解释密码设置32】# 2. 不可逆 无法反向计算出 对应 的 明文# 3. 雪崩效应 输入改变 输出改变# 场景 1.密码处理 2.文件的完整性校验# 如何使用 方法调用m hashlib.md5()m.update(pass1.encode()) # encode()变成字节串pass1_hash m.hexdigest() # 生成哈希值# 2.当前用户名是否可用 检查是否注册old_user User.objects.filter(usernameusername)if old_user:return HttpResponse(用户名已注册)# 插入数据 【明文处理】User.objects.create(usernameusername,passwordpass1_hash)return HttpResponse(注册成功)唯一索引引发的重复问题 try 请求量大 User.objects.create 会报错 在username该字段 因为是唯一字段 可能由于并发注册问题 发生重复写入问题 对于这类问题 善于用try解决 try :User.objects.create(usernameusername,passwordpass1_hash) except Exception as e:# 由于唯一索引 报错 重复插入 【唯一索引注意并发写入问题】print(--create user error %s % (e))return HttpResponse(用户名已注册)登陆状态保持 – 详细看用户登录状态 # 免登录一天 session 用户名 主键 存入 session request.session[username] username request.session[uid] user.id # TODO 修改session存储时间为1天 settings.py # SESSION_COOKIE_AGE 86400 # 1天 24小时 * 60分钟 * 60秒 86400秒settings.py设置一天时间 2. 用户登录 def login_view(request):if request.method GET:# GET 返回页面return render(request,user/login.html)elif request.method POST:# 获得数据username request.POST[username]password request.POST[password]# 查询 是否有此人# username 是唯一索引try:user User.objects.get(usernameusername) # 找不到 肯定没有except Exception as e:print(--login user error %s % (e))return HttpResponse(用户名或者密码错误)# 比对密码 因为哈希不可逆 所以从新生成哈希 用哈希数值进行比对m hashlib.md5()m.update(password.encode())if m.hexdigest() ! user.password:return HttpResponse(用户名或密码错误)# 记录会话状态# 免登录一天 session 用户名 主键 存入 sessionrequest.POST[username] usernamerequest.POST[uid] user.idreturn HttpResponse(登录成功)会话状态时间 cookie 1 记住用户名 免登录三天 # 判断有没有✔ 通过检查浏览器响应分析 checkbox的状态 rememberon # #点选了-Cookies存储username,uid时间3天 resp HttpResponse(--------success---------) if remember in request.POST:resp.set_cookie(username, username, 3600 * 24 * 3)resp.set_cookie(uid, user.id, 3600 * 24 * 3)return resp13号写的程序 2. 不记住 一天 就是session 用户登录状态校验 3. 网站首页 4.退出登录 5.笔记模块 列表页 添加笔记 补充 哈希算法 import hashlib m hashlib.md5() m.update(b明文) # 必须字节b串 m.hexdigest() # hexdigest 理解为16紧进制摘要# 若要想要计算新的数值 # 从新这样生成 m hashlib.md5() m.update(b明文) # 必须字节b串 m.hexdigest() # hexdigest 理解为16紧进制摘要# 若是直接update 相当于两次明文的拼接
http://www.sczhlp.com/news/202545/

相关文章:

  • 设计做笔记的网站建设网站青岛
  • 做网站公司名字应该用图片吗wordpress文章加背景
  • 网站建设规划任务书重庆建筑公司100强
  • 炒股网站开发网站后台管理系统使用
  • 怎么自己做视频网站app平台开发需要的资源与团队
  • 设计家装修网站c2c网站开发毕业设计
  • 网站怎么做啊做upc条形码的网站
  • 怎样在国外网站购买新鲜橙花做纯露河北wap网站建设
  • swipe类网站如何为网站建设内容
  • 河北高端网站设计公司乐清市网站建设设计
  • 网站建设主流技术建设集团网站价格
  • 专业商城网站设计企业网站的设计公司
  • 湖南住房建设厅网站线上推广的优势
  • 怎么做网络销售的网站邯郸昆石网络科技有限公司
  • 很多域名301定重到另一网站公司地址
  • 网站开发项目视频教程免费看舆情网站
  • 广州网站建设案件制定网站推广方案
  • wordpress中文网站模板下载中国工信备案查询网站
  • 青岛模板网站com域名的网址有哪些
  • 做医药商城网站的公司免费下ppt的网站有哪些
  • 哈尔滨制作网站多少钱谷歌浏览器官网下载
  • 网站开发团队投入最轻快的wordpress主題
  • 免费教做面食的网站淘宝运营培训课程有用吗
  • 响应式手机网站如何创建自己的网站链接
  • 重庆定制网站建设企业做网站的合同
  • 优化网站关键词排名全专业优化公司
  • 提供企业网站建设公司无敌神马在线观看免费完整
  • 创建网站要钱吗wordpress博客主题推荐
  • 宁德网站推广做茶道网站
  • 新媒体网站建设费用详单淮北网站建设制作