美文网首页
Django天天生鲜项目

Django天天生鲜项目

作者: 简简单单de生活 | 来源:发表于2018-02-20 16:26 被阅读0次

一.项目的整体架构

二.用户模块

用户注册思路总结:

  1. 获取用户输入的信息(username,password,email)
  2. 校验数据(数据的完整性,emai邮箱格式是否正确)
  3. 查看数据库中是否已经存在用户输入的用户名,用get函数。
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            # 用户名不存在
            user = None  # 重点在这里:小技巧
        if user:
            # 用户名已存在
            return render(request, 'register.html', {'errmsg': '用户名已存在'})
  1. 将用户信息插入到数据库。用create_user函数。
    • create_user函数的参数:username、password、email
    • 认证系统默认的参数:is_active=True、is_staff=False、is_superuser=False
    • 该函数将password用hash算法加密后存储到数据库中
  2. 将is_active的值设置为0,保存。为了用邮箱激活。
  3. 准备发送邮件的参数,用celery发送邮件。
    • 先给用户的id进行加密,先导包from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
        # 参数1:随便给一个字符串用来加密;参数2: 加解密的过期时间
        serializer = Serializer(settings.SECRET_KEY,30)    
        # 将用户id加密,返回一个bytes类型,需要转换为字符串类型
        token = serializer.dumps(user.id).decode()  
    
    • 在settings中配置celery的相关信息。
    • 然后自定义一个celery任务函数,调用django中的send_email()函数。
    • 最后用delay函数发送任务函数。
  4. 将注册信息保存到session中。
    • 用django.contrib.auth包中的login方法,login有两个参数,request和user,user来自authenticate方法。
    • 用login之前必须使用authenticate方法验证数据库中是否有用户信息。否则会抛出异常。
  5. 重定向到首页

用户登录思路总结:

  1. 获取用户输入的数据:username,password,allow
  2. 校验数据
  3. 查看数据库中是否包含账号和密码。user = authenticate(username=username,password=password)
  4. 判断user是否为空,和账号是否激活。
  5. user不为空,账号被激活:
    • login(request,user)方法将用户信息存储到session中。
    • 判断allow记住用户名是否为on,是:将username放到cookie中;否:将cookie中的username删除。
    • 跳转到首页
    • 设置index.html的导航栏。user.is_authenticated判断用户是否登入,user.username取出用户名。
  6. 否则,返回错误信息。

显示登录页面思路总结:

  1. 判断cookie中是否含有username。
  2. 含有:返回username,将checked的值设置为checked并返回。
  3. 没有:username和checked全部返回为空。

相关文章

  • Django天天生鲜项目

    一.项目的整体架构 二.用户模块 用户注册思路总结: 获取用户输入的信息(username,password,em...

  • Django天天生鲜项目学习笔记

    首先分析数据库模型! 用户表: id, 用户名, 密码, 邮箱, 激活标志, 权限标识(是否管理员) 地址表 :...

  • day53-Django项目-天天生鲜

    一、购物车数据同步模块 1.定义数据同步中间件 二、购物车功能模块 1.在urls.py配置文件中定义路由 2.计...

  • day54-Django项目-天天生鲜

    一、提交订单模块 1.在urls.py配置文件中定义路由 2.生成随机订单号 3.提交订单功能 4.前端页面代码 ...

  • day51-Django项目-天天生鲜

    一、注册模块 1.创建注册验证表单 2.注册功能 二、登录模块 1.创建登录验证表单 2.登录功能 三、中间件校验...

  • day52-Django项目-天天生鲜

    一、商品详情模块 1.在urls.py文件中定义路由 2.查看商品详情功能 3.detail.html 二、添加商...

  • 天天生鲜Django(3)

    ************** 五.实现用户登录功能 ****************** 1修改静态页面的静...

  • 天天生鲜Django(1)

    *********************************************************...

  • 天天生鲜Django(2)

    用户注册并向163邮箱发送邮件(两种方式:同步和异步,ubuntu和windows上的不同) **********...

  • 天天生鲜项目搭建

    1.项目架构 2. 数据库表结构 3.项目框架搭建 1.创建项目 2.创建多个应用 使用idea打开项目,然后将建...

网友评论

      本文标题:Django天天生鲜项目

      本文链接:https://www.haomeiwen.com/subject/zsygtftx.html