冲刺第四天

第一次冲刺

SCRUW部分

一、成员进度

姓名 今天的进度 遇到的问题 解决的问题 明天计划
雷思骞 百度接口的调用,与后台数据进行初步对接。 刚开始想利用python后台百度接口,但是一直没有找到加载动态地图的,只有静态的。 通过百度地图sdk文档使用js家寨动态地图。 产品管理的功能开发,充电桩管理功能开发。
陈舒遥 映射其他后台的表,开始尝试编写后端些许功能。编写后台个人信息功能。 项目冲刺阶段,对于数据库的设计合理。如何复习flask框架内容。 与宋佳豪一起讨论结局,通过查看其他项目数据库设计。按照之前自己写的笔记来进行复习 映射其他后台的表,开始尝试编写后端些许功能。
卿昕灿 测试 今天的测试是对于如何写好测试文档,首先经过了解得知了测试的步骤。 在了解完一系列流程之后,如何指定测试计划 开始编写需求的测试文档
刘垚 测试 今天的测试是对于登录注册的测试,首先经过了解得知了测试的步骤。 在了解完一系列流程之后,如何指定测试计划 开始编写需求的测试文档
刘俊 准备薪资管理,人员管理的前端页面, 按照自己的风格设计 Bs4上查找自己所需要的控件及样式 准备后台的页面大概样式
宋佳豪 学习python虚拟环境搭建,初步了解python Python虚拟环境如何进行创建,python怎么使用的。 在陈舒遥的辅导下,了解到python虚拟环境,pipenv shell创建虚拟环境,并打印出hallo world 学习Flask框架的初使用
郑志敏 准备薪资管理,人员管理的前端页面, 按照自己的风格设计 Bs4上查找自己所需要的控件及样式 准备后台的页面大概样式

二、团队的进度和代码

  • 用户注册

  • csrf验证
    https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

  • 用户注册业务逻辑分析

  • 用户注册接口设计和定义

  • 设计接口基本思路:
    1.分析要实现的业务逻辑:
    明确在这个业务中涉及到几个相关子业务。
    将每个子业务当做一个接口来设计。
    2.分析接口的功能任务,明确接口的访问方式与返回数据:
    请求方法(如GET、POST、PUT、DELETE等)。
    请求地址。
    请求参数(如路径参数、查询字符串、表单、JSON等)。
    响应数据(如HTML、JSON等)。

  • 用户注册接口设计

选项 方案
请求方式 POST
请求地址 /users
请求方式
请求参数:表单参数
参数名 类型 是否必传 说明
password string 密码
password2 string 确认密码
mobile string 手机号
sms_code string 短信验证码

响应结果

响应结果 响应内容
注册失败 响应错误提示
注册成功 重定向到首页
  • 用户注册接口定义

    @api.route("/users", methods=["POST"])
    def register():
    """注册
    请求的参数: 手机号、短信验证码、密码、确认密码
    参数格式:json
    """
    # 获取请求的json数据,返回字典

  • 用户模型类

     from datetime import datetime
     from . import db
     from werkzeug.security import generate_password_hash, check_password_hash
     from home import constants
     
     
     class BaseModel(object):
         """模型基类,为每个模型补充创建时间与更新时间"""
     
         create_time = db.Column(db.DateTime, default=datetime.now)  # 记录的创建时间
         update_time = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)  # 记录的更新时间
     
     
     class User(BaseModel, db.Model):
         """用户"""
     
         __tablename__ = "h_user_profile"
     
         id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 用户编号
         name = db.Column(db.String(32), unique=True, nullable=False)  # 用户暱称
         password_hash = db.Column(db.String(128), nullable=False)  # 加密的密码
         mobile = db.Column(db.String(11), unique=True, nullable=False)  # 手机号
         real_name = db.Column(db.String(32))  # 真实姓名
         id_card = db.Column(db.String(20))  # 身份证号
         avatar_url = db.Column(db.String(128))  # 用户头像路径
         houses = db.relationship("House", backref="user")  # 用户发布的房屋
         orders = db.relationship("Order", backref="user")  # 用户下的订单
     
         # 加上property装饰器后,会把函数变为属性,属性名即为函数名
         @property
         def password(self):
             """读取属性的函数行为"""
             # print(user.password)  # 读取属性时被调用
             # 函数的返回值会作为属性值
             # return "xxxx"
             raise AttributeError("这个属性只能设置,不能读取")
     
         # 使用这个装饰器, 对应设置属性操作
         @password.setter
         def password(self, value):
             """
             设置属性  user.passord = "xxxxx"
             :param value: 设置属性时的数据 value就是"xxxxx", 原始的明文密码
             :return:
             """
             self.password_hash = generate_password_hash(value)
     
         def check_password(self, passwd):
             """
             检验密码的正确性
             :param passwd:  用户登录时填写的原始密码
             :return: 如果正确,返回True, 否则返回False
             """
             return check_password_hash(self.password_hash, passwd)
     
         def to_dict(self):
             """将对象转换为字典数据"""
             user_dict = {
                 "user_id": self.id,
                 "name": self.name,
                 "mobile": self.mobile,
                 "avatar": constants.QINIU_URL_DOMAIN + self.avatar_url if self.avatar_url else "",
                 "create_time": self.create_time.strftime("%Y-%m-%d %H:%M:%S")
             }
             return user_dict
     
         def auth_to_dict(self):
             """将实名信息转换为字典数据"""
             auth_dict = {
                 "user_id": self.id,
                 "real_name": self.real_name,
                 "id_card": self.id_card
             }
             return auth_dict
    

三、SCRUM会议照片

四、团队的进度运行截图

PM报告

一、整个项目预期任务量:两周(14天);目前已经花费的时间:一个星期(7);剩余工作时间:一个星期(7)。

二、PM燃尽图:

三、任务总量变化线:

四、贡献度比

成员 贡献度占比
雷思骞 35
陈舒遥 22
卿昕灿 23
刘垚 23
刘俊 25
宋佳豪 25
郑志敏 30
posted on 2021-06-10 22:51  Groza7  阅读(44)  评论(0)    收藏  举报