当前位置: 首页 > 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.hkea.cn/news/14265316/

相关文章:

  • 天津城乡住房建设厅网站首页wordpress置顶到首页
  • 丽水建设局网站文件php免费企业网站模板
  • 南昌网站开发培训中心开源html5 网站模板
  • 有做lol直播网站有哪些wordpress网站怎么设置关键词
  • 亿网行网站建设网站无障碍的建设方面空缺
  • 网站开发团队 组建应用软件开发工程师是做什么的
  • 泰州网站制作平台四川省住建厅官网
  • 郑州网站推广单位wordpress默认
  • 携程网站官网如何获取热搜关键词
  • 网站建设优化服务方案采购销售管理软件
  • 电子商务网站建设与维护管理游戏推广渠道有哪些
  • 成都市网站设计开发建设一个网站需要条件
  • 网站建设图标郴州网站建设公司官网
  • 哪个网络公司做网站好点福州论坛哪个比较好
  • 苏州工业设计公司有哪些seo整站优化什么价格
  • 自己做影视会员网站跑业务用什么软件找客户
  • 哪些网站是用h5做的网站模板哪家好
  • 网站建设规划任务书贵阳建立网站
  • 可以做宣传的网站有哪些网站认证收费吗
  • 男的和女的做那种短视频网站网站开发需要掌握哪些技术
  • 网站开发建设好处邯郸网站设计定制
  • 做网站可以提些什么意见临淄做网站
  • 大港油田建设网站电子商务网站建设视频教学
  • asp网站开发软件带数据库的网站怎么建
  • 网站建设售价多少钱文化传媒 网站设计
  • apache建设网站企业查询天眼
  • h5网站案例东莞seo网站排名优化公司
  • 网站建设及维护平谷头条新闻
  • 建设一个图片下载网站百度正版下载
  • wordpress建淘宝客网站吗免费同城信息发布平台