Python打造在线健身追踪系统

admin 2025-01-13 173 0

在这个数字化时代,健身爱好者们越来越依赖科技来追踪和管理自己的健身进度。今天,我们将探讨如何用Python语言构建一个在线健身追踪系统,帮助用户记录锻炼数据、制定健身计划并追踪成果。

Python打造在线健身追踪系统

项目背景

随着健康意识的提升,越来越多的人开始关注自己的身体状况和健身效果。然而,手动记录健身数据既繁琐又容易出错。一个在线健身追踪系统不仅能提高数据管理的效率,还能通过数据分析为用户提供个性化的健身建议。

系统功能

  1. 用户注册与登录:用户可以通过注册账号来使用系统,并通过登录验证身份。
  2. 数据记录:用户可以记录每次锻炼的时间、项目、强度等数据。
  3. 计划制定:系统根据用户的目标和身体状况,推荐个性化的健身计划。
  4. 进度追踪:用户可以查看自己的健身进度,包括体重变化、肌肉增长等。
  5. 数据分析:系统通过数据分析,为用户提供改进建议。

技术栈

  • 前端:HTML, CSS, JavaScript
  • 后端:Python, Flask框架
  • 数据库:SQLite
  • 其他:Plotly(用于数据可视化)

实现步骤

1. 环境搭建

首先,我们需要安装必要的库:

pip install Flask SQLite3 Plotly

2. 数据库设计

使用SQLite创建一个简单的数据库,包含用户表和健身记录表:

import sqlite3

def create_db():
    conn = sqlite3.connect('fitness.db')
    c = conn.cursor()
    c.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)''')
    c.execute('''CREATE TABLE records (id INTEGER PRIMARY KEY, user_id INTEGER, exercise TEXT, duration INTEGER, intensity TEXT, date TEXT)''')
    conn.commit()
    conn.close()

create_db()

3. 后端开发

使用Flask框架搭建后端服务:

from flask import Flask, request, jsonify
import sqlite3

app = Flask(__name__)

@app.route('/register', methods=['POST'])
def register():
    data = request.json
    conn = sqlite3.connect('fitness.db')
    c = conn.cursor()
    c.execute('INSERT INTO users (username, password) VALUES (?, ?)', (data['username'], data['password']))
    conn.commit()
    conn.close()
    return jsonify({'message': 'User registered successfully'})

@app.route('/login', methods=['POST'])
def login():
    data = request.json
    conn = sqlite3.connect('fitness.db')
    c = conn.cursor()
    c.execute('SELECT * FROM users WHERE username=? AND password=?', (data['username'], data['password']))
    user = c.fetchone()
    conn.close()
    if user:
        return jsonify({'message': 'Login successful'})
    else:
        return jsonify({'message': 'Invalid credentials'})

@app.route('/record', methods=['POST'])
def record():
    data = request.json
    conn = sqlite3.connect('fitness.db')
    c = conn.cursor()
    c.execute('INSERT INTO records (user_id, exercise, duration, intensity, date) VALUES (?, ?, ?, ?, ?)', (data['user_id'], data['exercise'], data['duration'], data['intensity'], data['date']))
    conn.commit()
    conn.close()
    return jsonify({'message': 'Record added successfully'})

if __name__ == '__main__':
    app.run(debug=True)

4. 前端开发

创建简单的HTML页面用于用户注册、登录和数据记录:

<!DOCTYPE html>
<html>
<head>
    <title>Fitness Tracker</title>
</head>
<body>
    <h1>Register</h1>
    <form id="registerForm">
        <input type="text" id="username" placeholder="Username">
        <input type="password" id="password" placeholder="Password">
        <button type="submit">Register</button>
    </form>

    <h1>Login</h1>
    <form id="loginForm">
        <input type="text" id="loginUsername" placeholder="Username">
        <input type="password" id="loginPassword" placeholder="Password">
        <button type="submit">Login</button>
    </form>

    <h1>Record Exercise</h1>
    <form id="recordForm">
        <input type="text" id="exercise" placeholder="Exercise">
        <input type="number" id="duration" placeholder="Duration (mins)">
        <input type="text" id="intensity" placeholder="Intensity">
        <input type="date" id="date">
        <button type="submit">Record</button>
    </form>

    <script src="app.js"></script>
</body>
</html>

5

评论(0)