山东大学软件学院项目实训纪实(十一)

一、个人任务

我的任务主要是实现下面数据可视化图的后端代码

  • 用户地区分布图

二、任务——用户地区分布图

1.实现原因及目的

在医疗问答大模型系统中实现用户人数统计图(特别是按几天前和具体时刻以及人数构成的三维柱状图)的目的是为了对系统的使用情况进行深入分析和理解。这样的统计图能够提供以下几个方面的价值:

  • 用户行为分析:通过统计图,可以了解用户在不同时间段(如一天中的某个时刻或几天前)的活跃情况,从而分析用户的使用习惯。
  • 系统性能评估:根据用户人数的变化,可以评估系统在不同时间段的负载情况,进而优化系统性能。
  • 市场策略调整:了解用户活跃时段后,可以根据这些信息调整市场推广策略,如发布内容的时间、广告投放的时间等。

2.实现方法

service层

class MapService:
    def __init__(self):
        self.db_conn = get_db_conn()  # 初始化数据库连接(这里假设get_db_conn返回一个连接实例或连接池)

    def get_province_user_counts(self):
        db_conn = self.get_db_conn()
        if db_conn is None:
            return None

        try:
            cursor = db_conn.cursor(dictionary=True)
            query = """  
                SELECT province, COUNT(*) as user_count  
                FROM user_info  
                GROUP BY province  
            """
            cursor.execute(query)
            results = cursor.fetchall()
            return results
        except Exception as e:
            print(f"Error executing query: '{e}'")
            return None
        finally:
            self.close_db_conn(db_conn)
            cursor.close()

controller层

@app.route('/api/users/getLoginCounts', methods=['GET'])
def get_login_counts_api():
    # 允许通过GET参数指定天数
    days = request.args.get('days', 10, type=int)
    if days <= 0:
        return jsonify({'error': 'Days must be a positive integer.'}), 400

    counts, status_code = StaService.get_login_counts(days), 200
    return jsonify(counts), status_code

3.实现结果

三、总结

本次任务的主要目标是使用Python结合Flask框架,从数据库中提取用户地区与年龄相关的数据,并为前端提供数据接口,以便展示用户地区分布图和用户年龄分布图。

实现步骤

  1. 数据库连接:首先,需要建立与数据库的连接,这通常涉及到配置数据库连接参数(如主机名、端口、用户名、密码、数据库名等),并使用Python的数据库驱动(如psycopg2、pymysql、sqlite3等)来执行数据库操作。

  2. 数据提取:接下来,根据需求编写SQL查询语句,从数据库中提取用户地区和年龄相关的数据。对于用户地区分布图,可能需要提取用户所在地区及对应数量;对于用户年龄分布图,则需要提取各年龄段的用户数量。

  3. 数据处理:提取出的数据可能需要进行一定的处理,以便前端能够更方便地展示。例如,可以将地区数据转换为地图库能够识别的格式(如GeoJSON),或者将年龄数据按照不同的年龄段进行分组和统计。

  4. Flask API设计:使用Flask框架设计RESTful API接口,用于向前端提供用户地区分布和年龄分布的数据。这些接口应该支持不同的查询参数(如时间范围、地区筛选等),以便前端能够根据需要获取数据。接口返回的数据格式应为JSON,方便前端解析和渲染。

本次任务的目标是使用Python的Flask框架从数据库中获取数据,并构建后端API以支持用户地区分布图和用户年龄分布图的渲染。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值