在这个数字化时代,个人健康管理变得越来越重要。如何高效地记录和管理自己的健康数据?本文将带你一步步用Python语言构建一个在线个人健康记录系统,助你轻松掌握健康信息。
项目背景
随着生活节奏的加快,越来越多的人开始关注自己的健康状况。然而,传统的纸质记录方式不仅繁琐,还容易丢失。基于此,我们决定利用Python的强大功能,开发一个在线个人健康记录系统,方便用户随时随地查看和管理自己的健康数据。
技术选型
为了实现这一系统,我们选择了以下技术栈:
- 后端:Python + Flask框架
- 数据库:SQLite
- 前端:HTML + CSS + JavaScript
- 部署:Heroku
系统功能
我们的系统将包含以下核心功能:
- 用户注册与登录:确保数据的安全性。
- 健康数据记录:包括体重、血压、心率等。
- 数据可视化:通过图表展示健康趋势。
- 提醒功能:定期提醒用户记录健康数据。
实现步骤
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)