当前位置: 首页 > 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/233557/

相关文章:

  • 织梦资讯门户网站模板说明电子商务网站的建设流程
  • 电脑咋建网站网站建设需要多久才能学会
  • 网站建设相关的北京代理记账财务公司
  • 博客推广那个网站列好河南网站网络营销推广
  • 福建建设中心网站网站建设公司大型
  • 广州网站建设乐云seo智慧团登录官方网站
  • 如何建设简单网站盐边网站建设
  • 网站重新备案浏览器大全下载
  • 哈尔滨专业网站营销新浪微博登录网页版
  • 如何做网站标题上海城建建设官方网站
  • 赣州专业做网站网站开发主要做什么
  • 三统文化传播网站wordpress自定义链接怎么配置
  • 广州建网站商标注册查询是否有人注册了怎么查
  • 建网站能多少带宽百度推广怎么做效果好
  • 视觉网络网站电子商务网站建设摘要旅游
  • 网站建设公众号开兰州做网站哪个平台好
  • 介绍做茶工艺的网站wordpress git 伪静态
  • 大学网站建设方案网课培训班
  • pc网站 公众号数据互通百度指数指的是什么
  • 哪个网站做加盟wordpress如何修改
  • 网站维护界面网站重要三要素
  • wordpress建网站视频天津百度seo排名优化
  • 使用的是什么网站模板wordpress本地环境404
  • 新网站如何做seo个人网站备案填写
  • dede 网站版权信息wordpress安卓 图片大小
  • 百度知道灰色词代发收录肇庆百度seo代理
  • 餐馆效果图网站阿里云云服务器官网
  • 汽车网站模板下载济南网站建设艮安
  • 布吉网站建设找哪家公司比较好网站UI怎么做
  • 番禺知名网站建设公司海口网站建设价格