博主介绍:✌全网粉丝50W+,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,选择我们,就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅🍅**感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。**🍅
1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅
1、项目介绍
技术栈
Python语言、Django框架、MySQL数据库、Echarts可视化、数据分析、健康数据、HTML
功能模块
- 首页
- 习惯管理
- BMI信息
- 血压管理
- 行为习惯信息
- 个人信息中心
- 血脂信息
- BMI管理
- 注册登录
项目介绍
本系统基于Python与Django框架开发,结合MySQL数据库存储用户健康数据,前端采用HTML与ECharts实现可视化展示。系统围绕身体数据管理核心场景,涵盖用户注册登录、健康指标录入与查询、数据分析建议等功能。通过表格展示与柱状图、环形图等可视化图表相结合的方式,帮助用户直观了解自身BMI、血压、血脂及行为习惯等健康状况。系统支持按姓名搜索、分页查看及健康状态分析,为个人健康监测与数据驱动的健康管理提供了实用工具。
2、项目界面
(1)首页
该健康数据分析系统首页,通过统计卡片展示用户、BMI、血压、血脂管理模块入口,并以环形图可视化用户健康状态分布,直观呈现健康、亚健康及未知状态的占比情况。

(2)习惯管理
该行为习惯管理页面以表格形式展示用户的抽烟、喝酒、记忆力减退、失眠、疲劳等健康习惯信息,支持按姓名搜索用户,可分页查看数据,方便管理员对用户健康行为习惯进行统一管理与查询。

(3)BMI信息
该BMI信息页面以表格展示用户的身高、体重、BMI值等基础数据,并通过柱状图可视化身高、体重与BMI值,同时提供分析建议按钮,帮助用户直观了解自身体重健康状况。

(4)血压管理
该血压管理页面以表格形式展示用户的收缩压、舒张压、心率及测量时间等血压健康数据,支持按姓名搜索用户,可分页查看数据,方便管理员对用户血压信息进行统一管理与查询。

(5)行为习惯信息
该行为习惯信息页面以表格展示用户抽烟、喝酒、失眠等健康行为数据,并通过柱状图可视化用户行为习惯情况,同时提供健康状态分析按钮,帮助用户直观了解自身行为习惯与健康风险。

(6)个人信息中心
该血压信息页面以表格展示用户的血压、心率等健康数据,并通过柱状图可视化血压相关指标,同时提供血压分析建议按钮,帮助用户直观了解自身血压状况。

(7)血脂信息
该血脂信息页面以表格展示用户的甘油三酯、总胆固醇等血脂数据,并通过柱状图可视化各项血脂指标,同时提供血脂分析建议按钮,帮助用户直观了解自身血脂健康状况。

(8)BMI管理
该BMI信息页面以表格展示用户的身高、体重、BMI值等基础数据,并通过柱状图可视化身高、体重与BMI值,同时提供分析建议按钮,帮助用户直观了解自身体重健康状况。

(9)注册登录
该健康数据分析可视化系统的登录页面,提供账号、密码、验证码输入框,支持管理员与用户两种身份选择,通过身份验证后即可进入对应系统界面。

3、项目说明
一、技术栈简要说明
本系统后端采用 Python 语言结合 Django 框架进行开发,利用 Django 强大的 ORM 能力和路由管理机制,高效处理业务逻辑与请求响应。数据库使用 MySQL 存储用户信息、健康指标及行为习惯等数据。前端基于 HTML 构建页面结构,并引入 ECharts 可视化库实现环形图、柱状图等多种图表的动态渲染与数据展示。整体技术方案聚焦健康数据管理场景,兼顾功能完整性与交互体验。
二、功能模块详细介绍
-
注册登录
该模块是系统入口页面,提供账号、密码及验证码输入框,支持管理员与普通用户两种身份选择。用户提交登录信息后,系统根据身份类型进行验证,验证通过后跳转至对应的系统主界面,实现不同角色的权限区分与安全访问控制。
-
首页
首页集成多个核心模块的快捷入口,通过统计卡片展示用户总数、BMI、血压、血脂等管理模块的跳转按钮。页面中央采用环形图可视化用户整体健康状态分布,将用户划分为健康、亚健康及未知状态三类,并以不同颜色区块直观呈现各类人群占比,帮助管理员快速掌握全局健康概况。
-
习惯管理
该页面以表格形式集中展示用户的抽烟、喝酒、记忆力减退、失眠、疲劳等健康习惯信息。支持按用户姓名进行模糊搜索,并具备分页查看功能,方便管理员在大量数据中快速定位特定用户的习惯记录,实现对用户健康行为的统一管理与查询。
-
行为习惯信息
该页面除表格展示用户的抽烟、喝酒、失眠等健康行为数据外,还通过柱状图对不同用户的行为习惯进行可视化对比。页面同时提供健康状态分析按钮,点击后可生成针对性的健康风险评估,帮助用户直观了解自身行为习惯与潜在健康风险之间的关系。
-
BMI信息
该页面以表格展示用户的身高、体重及计算得出的 BMI 值。右侧或下方配合柱状图,将身高、体重与 BMI 值进行可视化呈现,便于用户横向对比自身数据。页面提供分析建议按钮,根据 BMI 数值范围(如偏瘦、正常、超重、肥胖)给出相应的健康建议。
-
BMI管理
该模块功能与 BMI 信息页面基本一致,同样以表格展示身高、体重与 BMI 值,并配合柱状图进行可视化展示。提供分析建议按钮,帮助用户了解自身体重健康状况。该模块可视为对 BMI 数据的独立管理入口,便于集中处理体重相关指标。
-
血压管理
该页面以表格形式记录用户的收缩压、舒张压、心率及测量时间等血压相关数据。支持按用户姓名搜索血压记录,并提供分页功能以便于浏览大量数据。管理员可通过该模块对用户的血压信息进行统一查询与管理,及时发现异常血压值。
-
个人信息中心
该页面聚焦于单个用户的血压与心率数据,以表格展示历史测量记录,并通过柱状图直观呈现血压相关指标的变化趋势。页面提供血压分析建议按钮,根据收缩压和舒张压的数值范围给出如正常、偏高、高血压等级等评估建议,帮助用户了解自身血压状况。
-
血脂信息
该页面以表格形式展示用户的甘油三酯、总胆固醇等血脂指标数据,并通过柱状图对不同用户的各项血脂数值进行可视化对比。页面提供血脂分析建议按钮,根据血脂指标的标准范围给出相应健康建议,帮助用户直观了解自身血脂健康状况。
三、项目总结
本系统围绕个人健康数据管理需求,基于 Django 框架与 MySQL 数据库构建了涵盖注册登录、首页概览、BMI、血压、血脂及行为习惯等核心模块的综合平台。通过表格展示与 ECharts 可视化图表相结合的方式,使用户能够直观了解自身多项健康指标的变化趋势与分类状态。系统支持按姓名搜索、分页查看及一键分析建议等功能,降低了健康数据理解的门槛,为个人健康监测和日常管理提供了便捷的信息化工具。
4、核心代码
python
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
from myadmin.models import User
from users.models import HHealth
from django.shortcuts import render
def index(request):
'''浏览信息'''
umod = User.objects
ulist = umod.all()
mywhere = []
# 获取并判断搜索条件
kw = request.GET.get("keyword", None)
if kw:
ulist = ulist.filter(name__contains=kw)
mywhere.append('keyword=' + kw)
# 获取、判断并封装状态status搜索条件
status = request.GET.get('status', '')
if status != '':
ulist = ulist.filter(status=status)
mywhere.append("status=" + status)
paginator = Paginator(ulist, 10)
page = request.GET.get('page', 1)
try:
page_obj = paginator.page(page)
pIndex = int(page)
except PageNotAnInteger:
page_obj = paginator.page(1)
pIndex = 1
except EmptyPage:
page_obj = paginator.page(paginator.num_pages)
pIndex = paginator.num_pages
# Create the list of page numbers
if paginator.num_pages <= 7:
plist = range(1, paginator.num_pages + 1)
else:
if pIndex <= 4:
plist = range(1, 8)
elif pIndex >= paginator.num_pages - 3:
plist = range(paginator.num_pages - 6, paginator.num_pages + 1)
else:
plist = range(pIndex - 3, pIndex + 4)
hmod = HHealth.objects
h_health = hmod.all()
context = {"userlist": page_obj, 'plist': plist, 'pIndex': pIndex, 'maxpages': paginator.num_pages, 'mywhere': mywhere,
'h_health': h_health}
return render(request, 'myadmin/healthbmi/index.html', context)
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from myadmin.models import User
from users.models import HRecord
from django.shortcuts import render
def index(request):
'''浏览信息'''
umod = User.objects
ulist = umod.all()
mywhere = []
# 获取并判断搜索条件
kw = request.GET.get("keyword", None)
if kw:
ulist = ulist.filter(name__contains=kw)
mywhere.append('keyword=' + kw)
# 获取、判断并封装状态status搜索条件
status = request.GET.get('status', '')
if status != '':
ulist = ulist.filter(status=status)
mywhere.append("status=" + status)
# 执行分页处理
paginator = Paginator(ulist, 10)
page = request.GET.get('page', 1)
try:
page_obj = paginator.page(page)
pIndex = int(page)
except PageNotAnInteger:
page_obj = paginator.page(1)
pIndex = 1
except EmptyPage:
page_obj = paginator.page(paginator.num_pages)
pIndex = paginator.num_pages
# Create the list of page numbers
if paginator.num_pages <= 7:
plist = range(1, paginator.num_pages + 1)
else:
if pIndex <= 4:
plist = range(1, 8)
elif pIndex >= paginator.num_pages - 3:
plist = range(paginator.num_pages - 6, paginator.num_pages + 1)
else:
plist = range(pIndex - 3, pIndex + 4)
hmod = HRecord.objects
h_record = hmod.all()
context = {"userlist": page_obj, 'plist': plist, 'pIndex': pIndex, 'maxpages': paginator.num_pages, 'mywhere': mywhere,
'h_record': h_record}
return render(request, 'myadmin/healthRecord/index.html', context)
def delete(request, tid=0):
'''执行信息删除'''
try:
io = User.objects.get(id=tid)
ob = HRecord.objects.get(user_id=io.user)
ob.delete()
context = {'info': "删除成功!"}
except Exception as err:
print(err)
context = {'info': "删除失败!"}
return render(request, "myadmin/info.html", context)
def edit(request, tid=0):
'''加载信息编辑表单'''
try:
oi = User.objects.get(id=tid)
ob = HRecord.objects.get(user=oi.user)
context = {'HRecord': ob, 'user': oi}
return render(request, "myadmin/healthRecord/edit.html", context)
except Exception as err:
print(err)
context = {'info': "没有找到要修改的信息!"}
return render(request, "myadmin/info.html", context)
def update(request, tid):
'''执行信息编辑'''
try:
ob = User.objects.get(id=tid)
oi = HRecord.objects.get(user=ob.user)
ob.name = request.POST['name']
ob.gender = request.POST['gender']
oi.systolic_pressure = request.POST['systolic_pressure']
oi.diastolic_pressure = request.POST['diastolic_pressure']
ob.save()
oi.save()
context = {'info': "修改成功!"}
except Exception as err:
print(err)
context = {'info': "修改失败!"}
return render(request, "myadmin/info.html", context)