Python打造在线个人健康记录系统

admin 2025-01-12 385 0

在这个数字化时代,个人健康管理变得越来越重要。如何高效地记录和管理自己的健康数据?本文将带你一步步用Python语言构建一个在线个人健康记录系统,助你轻松掌握健康信息。

Python打造在线个人健康记录系统

项目背景

随着生活节奏的加快,越来越多的人开始关注自己的健康状况。然而,传统的纸质记录方式不仅繁琐,还容易丢失。基于此,我们决定利用Python的强大功能,开发一个在线个人健康记录系统,方便用户随时随地查看和管理自己的健康数据。

技术选型

为了实现这一系统,我们选择了以下技术栈:

  • 后端:Python + Flask框架
  • 数据库:SQLite
  • 前端:HTML + CSS + JavaScript
  • 部署:Heroku

系统功能

我们的系统将包含以下核心功能:

  1. 用户注册与登录:确保数据的安全性。
  2. 健康数据记录:包括体重、血压、心率等。
  3. 数据可视化:通过图表展示健康趋势。
  4. 提醒功能:定期提醒用户记录健康数据。

实现步骤

1. 环境搭建

首先,确保你已经安装了Python和pip。接下来,安装Flask和SQLite库:

pip install Flask sqlite3

2. 后端开发

创建Flask应用

在项目根目录下创建app.py

from flask import Flask, request, jsonify
import sqlite3

app = Flask(__name__)

# 数据库初始化
def init_db():
    conn = sqlite3.connect('health.db')
    c = conn.cursor()
    c.execute('''CREATE TABLE IF NOT EXISTS users
                 (id INTEGER PRIMARY KEY, username TEXT, password TEXT)''')
    c.execute('''CREATE TABLE IF NOT EXISTS health_data
                 (id INTEGER PRIMARY KEY, user_id INTEGER, weight REAL, blood_pressure TEXT, heart_rate INTEGER, date TEXT,
                 FOREIGN KEY(user_id) REFERENCES users(id))''')
    conn.commit()
    conn.close()

init_db()

@app.route('/')
def index():
    return "Welcome to the Personal Health Record System!"

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

用户注册与登录

添加用户注册和登录的API:

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

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

3. 前端开发

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


<!DOCTYPE html>
<html>
<head>
    <title>Health Record System</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>

    <script>
        document.getElementById('registerForm').addEventListener('submit', function(e) {
            e.preventDefault();
            const username = document.getElementById('username').value;
            const password = document.getElementById('password').value;
            fetch('/register', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({username, password})
            }).then(res => res.json()).then(data => alert(data.message));
        });

        document.getElementById('loginForm').addEventListener('submit', function(e) {
            e.preventDefault();
            const username = document.getElementById('loginUsername').value;
            const password = document.getElementById('loginPassword').value;
            fetch('/login', {
                method: 'POST',
                headers: {
                    'Content-Type': '

评论(0)