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

wordpress 外部链接seo程序专员

wordpress 外部链接,seo程序专员,深圳市中心最繁华区,高端品牌网站建设需要注意什么文章目录 功能整体架构流程搭建平台环境子功能先创建用户表 并同步到数据库1.用户注册密码存储 -- 哈希算法唯一索引引发的重复问题 try登陆状态保持 -- 详细看用户登录状态 2. 用户登录会话状态时间 cookie用户登录状态校验 3. 网站首页4.退出登录5.笔记模块 列表页添加笔记 …

文章目录

    • 功能
    • 整体架构流程
    • 搭建平台环境
    • 子功能
      • 先创建用户表 并同步到数据库
      • 1.用户注册
        • 密码存储 -- 哈希算法
        • 唯一索引引发的重复问题 try
        • 登陆状态保持 -- 详细看用户登录状态
      • 2. 用户登录
        • 会话状态时间 + cookie
        • 用户登录状态校验
      • 3. 网站首页
      • 4.退出登录
      • 5.笔记模块 列表页
        • 添加笔记
    • 补充
      • 哈希算法

功能

Django搭建的在线云笔记项目 支持如下功能:

  1. 用户登录、注册
  2. 登录用户的笔记创建、展示
  3. 页面登录状态检测
  4. 登陆状态【免登录】设置
  5. 扩展-- 删除、更改【没写】

源码: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没有效果】

在这里插入图片描述

子功能

先创建用户表 并同步到数据库

在这里插入图片描述

  1. 创建用户表
class User(models.Model):username = models.CharField(verbose_name="用户名",max_length=30,unique=True)password = models.CharField('密码',max_length=32)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(username=username)if old_user:return HttpResponse('用户名已注册!!!')# 插入数据 【明文处理】User.objects.create(username=username,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(username=username)if old_user:return HttpResponse('用户名已注册!!!')# 插入数据 【明文处理】User.objects.create(username=username,password=pass1_hash)return HttpResponse('注册成功!')

在这里插入图片描述

唯一索引引发的重复问题 try

请求量大 User.objects.create 会报错 在username该字段 因为是唯一字段 可能由于并发注册问题 发生重复写入问题 对于这类问题 善于用try解决

在这里插入图片描述

try :User.objects.create(username=username,password=pass1_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(username=username) # 找不到 肯定没有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的状态 remember=on
# #点选了->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 resp

13号写的程序
在这里插入图片描述
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.dinnco.com/news/50211.html

相关文章:

  • 新站seo竞价网络推广需要多少钱
  • 如何找人帮我做网站推广百度爱采购优化排名软件
  • 自己做电影网站需要什么看书网站排名
  • 杭州发布官网天津优化网络公司的建议
  • 合肥做拼拼团网站的公司百度竞价专员
  • 鞋图相册网站怎么做泉州全网营销优化
  • 组建网站需多少钱青岛关键词排名哪家好
  • 专业模板网站制作服务关键词网络推广企业
  • 租赁服务器的网站seo搜索优化公司排名
  • 做衣服哪个网站好短期培训班学什么好
  • 兰州企业网站建设哪家好网络电商推广方案
  • 郑州做品牌网站的公司个人博客搭建
  • wordpress怎样设置友情链接株洲seo优化
  • wordpress 文章页当前栏目链接seo项目培训
  • 河北涿州建设局网站seo公司后付费
  • 滕州个人兼职做网站52种新颖的促销方式
  • 做二手房怎找房源网站seo推广知识
  • 东莞网站建设公司辉煌大厦互联网营销怎么赚钱
  • 信誉好的顺德网站建设郑州网络推广报价
  • 视觉中国网站百度竞价是什么
  • 服务器租用网站模板日本网站源码
  • 设计师自己做网站百度seo优化怎么做
  • 餐饮公司网站建设的特点关键词挖掘查询工具
  • 常州网约车营运证怎么办理企业网站优化软件
  • 网站建站报价单免费网站申请注册
  • 企业网站源码带支付媒体发稿网
  • wordpress区块链快讯模板谷歌seo服务公司
  • 川畅科技搜搜 网站设计上海网站建设优化
  • wordpress首页加速seo优化6个实用技巧
  • 网站内容图片怎么做的百度seo刷排名软件