一、本周工作总结
本周我们主要的工作内容有以下两个方面
1. 完成后台数据展示的后端
2. 对接系统后台中动态数据展示和后端的接口
下面将对这些工作进行简单介绍
二、完成后台数据展示的后端
2.1 首先我们选择flask框架进行后端开发
1.Flask框架概述
Flask是基于Werkzeug和Jinja2库构建的,它遵循了MVC(模型-视图-控制器)的设计模式。Flask的核心思想是保持简洁和易用,它提供了一些核心功能,但也允许开发者通过扩展来添加更多功能。
2.Flask的特点
简单易学:Flask的API设计简洁明了,学习和上手容易。开发者无需学习复杂的框架概念,只需了解几个核心概念即可开始开发。
轻量级灵活:Flask没有过多的依赖,它的核心功能非常精简。开发者可以根据需要选择适合自己项目的扩展,使得框架更加灵活。
易于扩展:Flask提供了丰富的扩展库,可以轻松集成常用的功能,如数据库访问、表单验证、身份认证等。开发者可以根据需求选择适合自己项目的扩展,快速实现功能。
模板引擎支持:Flask集成了Jinja2模板引擎,使得前后端分离更加方便。开发者可以通过模板引擎将逻辑和界面分离,提高代码的可维护性和可读性。
多种数据库支持:Flask支持多种数据库,如SQLite、MySQL、PostgreSQL等。开发者可以根据项目需求选择适合的数据库,进行数据的存储和操作。
自动化测试:Flask提供了测试客户端和测试工具,方便开发者进行自动化测试,保证代码的质量和可靠性。
1. 实践引入
2.2 重要代码展示
1.统计一周登录人次
8.上一周人次数目
@app.route('/back/record/get_last_week_dates/', methods=['GET'])
def get_last_week_login_count():
# 获取上一周的起始和结束日期
last_week_start, last_week_end = get_last_week_dates()
db_conn = get_db_conn() # 假设你有这个函数来获取数据库连接
# 编写SQL查询
query = """
SELECT COUNT(DISTINCT user_id) AS total_logins
FROM user_login
WHERE DATE(login_time) BETWEEN %s AND %s;
"""
# 准备并执行查询
params = (last_week_start, last_week_end)
result = db_conn.get_one(query, params)
total_logins = result[0] if result else 0
return jsonify(total_logins), 200
2. 统计一周常用时段
# 7.一周常用时段
@app.route('/back/record/getAverageLogin/', methods=['GET'])
def get_average_logins_per_two_hours1():
# 示例使用
now = datetime.now()
yesterday_start = now - timedelta(days=2)
yesterday_start = yesterday_start.replace(hour=0, minute=0, second=0, microsecond=0)
yesterday_end = yesterday_start + timedelta(days=1)
db_conn = get_db_conn() # 假设你有这个函数来获取数据库连接
re = get_full_logindata_index(db_conn, yesterday_start, yesterday_end)
re = re * 2
if re is None:
return msg(201)
return jsonify(re), 200
3. 统计一日常用时段
7.一日常用时段
@app.route('/back/record/getAverageLogin/', methods=['GET'])
def get_average_logins_per_two_hours():
# 示例使用
now = datetime.now()
yesterday_start = now - timedelta(days=1)
yesterday_start = yesterday_start.replace(hour=0, minute=0, second=0, microsecond=0)
yesterday_end = yesterday_start + timedelta(days=1)
db_conn = get_db_conn() # 假设你有这个函数来获取数据库连接
re = get_full_logindata_index(db_conn, yesterday_start, yesterday_end)
re = re * 2
if re is None:
return msg(201)
return jsonify(re), 200
2.3 Postman测试
1.接口总览
2. 测试例子
一、对接接口
2.1 接口文档编写
1. 问答部分
1.查询用户问答信息
传参:搜索类型+内容(按用户名搜索+用户账号或按问题关键词搜索+关键词)
接收参数:
搜索结果(filteredQAList):返回的过滤后的问答信息列表(包括用户名,用户账号,问题,回答)
2.显示用户问答信息
接收参数:所有用户问答信息
3.删除用户信息
传参:用户id
接收:新的用户列表
修改:这里返回值是删除的行数,你在前端重新执行一遍搜索所有用户即可,无需后端返回所有用户信息,具体参考我之前的前端代码
注:下面内容可以显示,但是只能看到昨天的,因为今天还没能完全到24小时
4.时段柱状图
传参:
接收参数:Logindata2:每两小时(0点到2点、2点到四点...)登录人次数目的数组(例如:[100, 50, 20, 250, 300, 450, 540, 50, 10, 250, 100, 350])
5.时段饼状图
传参:
接收参数:Logindata6:每六小时(0点到6点、6点到12点...)登录人次数目的数组
6.常用时段
传参:
接收参数:daytime:登录人次最多时段(上一日)(返回一个两小时的时段,比如:0:00-2:00)
7.常用日
传参:
接收参数:time:登录人次最多的一天(上一周)(返回一天,比如:周一.)
8.登录人次
接收参数:Amount:登录总人次(上一日)
weekamount登录总人次(上一周)
2. 用户部分
用户管理界面
1.查询用户信息
传参:用户名,id
接收参数:
2.显示用户信息
接收参数:用户信息
3.编辑用户信息
传参:用户id,修改的用户字段信息
接收参数:修改完成的用户信息
4.删除用户信息
传参:用户id
接收:新的用户列表
5.重置密码
传参:用户id
接收:默认用户密码
6.实时在线人数显示
传参:
接收参数:当前时间用户在线人数
7.十日用户活跃度
传参:
接收参数:十日用户活跃数量
8.用户年龄分布
传参:
接收参数:每10岁一个年龄段,统计人数
9.地区分布热力图
传参:
接收参数:地区统计人数
10.用户反馈管理界面
1.显示信息
传参:
接收参数:反馈信息列表
2.查询
传参:反馈信息类型,关键词
接收参数:反馈信息
3.修改
传参:反馈信息已读
接收参数:更新后的数据
4.绘制树状矩形图
传参:
接收参数:反馈信息各类别数量统计
二、总结
本周,我们团队的工作主要集中在后台数据展示及其与后端接口的对接上。以下是关于这两项工作的具体总结:
一、后台数据展示的后端开发
本周,我们成功完成了后台数据展示的后端开发工作。这项工作的关键在于确保后端能够准确、高效地处理数据请求,并将数据以适当的格式返回给前端进行展示。我们主要做了以下几个方面的工作:
l 数据模型设计:首先,我们根据业务需求,设计了合理的数据模型,确保数据的完整性和准确性。
l 接口开发:基于设计好的数据模型,我们开发了相应的后端接口,用于处理前端发送的数据请求。这些接口能够接收前端发送的参数,根据参数从数据库中检索数据,并将数据以JSON或其他前端友好的格式返回。
l 性能优化:为了提高系统的响应速度和用户体验,我们对后端接口进行了性能优化。通过优化数据库查询、减少网络传输量等方式,我们显著提高了接口的响应速度。
二、对接系统后台中动态数据展示和后端的接口
在完成了后台数据展示的后端开发后,我们进一步与系统后台进行了对接,实现了动态数据展示与后端接口的顺畅通信。这项工作的关键在于确保前后端能够准确、快速地交换数据,实现数据的实时更新和展示。我们主要做了以下几个方面的工作:
l 接口对接:我们与前端团队紧密合作,确保前端发送的数据请求与后端接口的定义保持一致。同时,我们也对前端返回的数据进行了处理,以满足前端展示的需求。
l 数据同步:为了实现数据的实时更新和展示,我们采用了轮询、WebSocket等多种方式来实现前后端的数据同步。这些技术能够确保当后端数据发生变化时,前端能够实时获取到最新的数据并进行展示。
l 错误处理:在对接过程中,我们遇到了各种问题和错误。我们通过详细的日志记录和错误分析,及时解决了这些问题,并优化了代码以减少未来的错误发生。 总结
本周,我们团队在后台数据展示和后端接口对接方面取得了显著的进展。同时,我们也积累了丰富的开发经验和知识,为未来的工作打下了坚实的基础。我们将继续努力,不断优化和完善系统,为用户提供更好的服务。