# data_monitor **Repository Path**: ibreed/data_monitor ## Basic Information - **Project Name**: data_monitor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-29 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据监测系统 基于 Django + MySQL + 纯 HTML/CSS 实现的畜禽育种数据监测系统,支持数据浏览、搜索、排序、导出及用户权限管理。 ## 技术栈 - **后端框架**:Django 4.2 - **数据库**:MySQL 8.0+ - **前端**:纯 HTML5 + CSS3(无 JavaScript、无 Bootstrap) - **Excel 导出**:openpyxl - **响应式**:纯 CSS Media Query 实现小屏幕自适应 ## 项目结构 ``` data_monitor_project/ ├── manage.py # Django 管理脚本 ├── requirements.txt # 依赖包 ├── README.md # 部署说明 ├── data_monitor/ # 项目主配置 │ ├── __init__.py │ ├── settings.py # 项目配置(数据库等) │ ├── urls.py # 主路由 │ ├── wsgi.py # WSGI 入口 │ └── asgi.py # ASGI 入口 ├── common/ # 公共模块 │ ├── models.py # 菜单、权限模型 │ ├── views.py # 首页、通用列表视图、导出 │ ├── urls.py # 公共路由 │ ├── middleware.py # 菜单权限中间件 │ ├── context_processors.py # 全局菜单上下文 │ ├── admin.py # 后台管理(含用户审核、权限配置) │ ├── apps.py │ ├── templatetags/ │ │ ├── __init__.py │ │ └── data_tags.py # 模板过滤器 │ ├── management/commands/ │ │ └── init_menus.py # 菜单初始化命令 │ └── templates/ │ ├── base.html # 基础母版 │ └── welcome.html # 欢迎页 ├── accounts/ # 用户管理模块 │ ├── models.py # 用户扩展信息 │ ├── forms.py # 注册/登录/信息表单 │ ├── views.py # 注册、登录、退出、信息维护、改密 │ ├── urls.py │ ├── admin.py │ ├── apps.py │ └── templates/ │ ├── login.html # 登录页 │ ├── register.html # 注册页 │ ├── user_profile.html # 用户信息页 │ └── change_password.html # 修改密码页 ├── base_breeding/ # 种源基地 app │ ├── models.py # 核心种场、核验动态 │ ├── views.py │ ├── urls.py │ ├── admin.py │ ├── apps.py │ └── templates/ │ ├── core_farm_list.html │ └── verification_dynamic_list.html ├── scale_monitor/ # 规模监测 app │ ├── models.py # 生猪规模、肉牛规模 │ ├── views.py │ ├── urls.py │ ├── admin.py │ ├── apps.py │ └── templates/ │ ├── pig_scale_list.html │ └── cattle_scale_list.html ├── pedigree_monitor/ # 系谱监测 app │ ├── models.py # 生猪系谱、肉牛系谱 │ ├── views.py │ ├── urls.py │ ├── admin.py │ ├── apps.py │ └── templates/ │ ├── pig_pedigree_list.html │ └── cattle_pedigree_list.html ├── measurement_monitor/ # 测定监测 app │ ├── models.py # 累计测定、上年测定、本年测定 │ ├── views.py │ ├── urls.py │ ├── admin.py │ ├── apps.py │ └── templates/ │ ├── history_measurement_list.html │ ├── last_year_measurement_list.html │ └── this_year_measurement_list.html ├── research_project/ # 研究项目 app │ ├── models.py # 中省测定、育种攻关 │ ├── views.py │ ├── urls.py │ ├── admin.py │ ├── apps.py │ └── templates/ │ ├── provincial_measurement_list.html │ └── breeding_research_list.html └── static/ └── css/ └── main.css # 全局样式 ``` ## 功能模块 | 顶部菜单 | 侧边菜单 | 对应模型 | |---------|---------|---------| | 种源基地 | 核心种场 | CoreFarm | | 种源基地 | 核验动态 | VerificationDynamic | | 规模监测 | 生猪规模 | PigScale | | 规模监测 | 肉牛规模 | CattleScale | | 系谱监测 | 生猪系谱 | PigPedigree | | 系谱监测 | 肉牛系谱 | CattlePedigree | | 测定监测 | 累计测定 | HistoryMeasurement | | 测定监测 | 上年测定 | LastYearMeasurement | | 测定监测 | 本年测定 | ThisYearMeasurement | | 研究项目 | 中省测定 | ProvincialMeasurement | | 研究项目 | 育种攻关 | BreedingResearch | ## 部署步骤 ### 1. 环境准备 ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Linux/Mac: source venv/bin/activate # Windows: # venv\Scripts\activate # 安装依赖 pip install -r requirements.txt ``` > **注意**:安装 `mysqlclient` 前需确保系统已安装 MySQL 开发库: > - Ubuntu/Debian: `sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pkg-config` > - CentOS/RHEL: `sudo yum install python3-devel mysql-devel` > - Windows: 可直接 `pip install mysqlclient`(需有对应 wheel) ### 2. 创建 MySQL 数据库 ```sql CREATE DATABASE data_monitor DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 3. 修改数据库配置 编辑 `data_monitor/settings.py`,修改以下配置: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'data_monitor', # 数据库名 'USER': 'root', # 数据库用户名 'PASSWORD': 'your_password', # 数据库密码 'HOST': '127.0.0.1', # 数据库地址 'PORT': '3306', # 端口 'OPTIONS': {'charset': 'utf8mb4'}, } } ``` ### 4. 数据库迁移 ```bash python manage.py makemigrations common accounts base_breeding scale_monitor pedigree_monitor measurement_monitor research_project python manage.py migrate ``` ### 5. 初始化菜单数据 ```bash python manage.py init_menus ``` ### 6. 创建超级管理员 ```bash python manage.py createsuperuser ``` 按提示输入用户名、邮箱、密码。超级管理员默认拥有所有权限,无需审核。 ### 7. 启动开发服务器 ```bash python manage.py runserver 0.0.0.0:8000 ``` 访问: - 系统首页:http://localhost:8000/ - 管理后台:http://localhost:8000/admin/ ## 生产环境部署(Windows Server + IIS) ### 安装 wfastcgi ```bash pip install wfastcgi wfastcgi-enable ``` ### web.config 配置示例 ```xml ``` ### 收集静态文件 ```bash python manage.py collectstatic ``` ## 用户管理说明 ### 用户注册与审核 1. 用户在注册页填写用户名、密码、联系人、联系电话、联系邮箱、备注 2. 注册后账号默认为**非激活状态**(`is_approved=False`) 3. 未审核用户登录时提示"账号尚未通过管理员审核" 4. 管理员登录后台(`/admin/`),在用户管理中勾选"是否审核"即可激活 ### 用户权限配置 1. 管理员在后台进入"用户菜单权限"管理 2. 为每个用户配置对每个侧边菜单的"可查看"和"可导出"权限 3. 普通用户登录后仅能看到有权限的菜单,无权限的页面会被中间件拦截 ### 用户信息维护 - 登录后点击右上角用户名 → 用户信息 - 可修改:联系人、联系电话、联系邮箱 - 不可修改:用户名、注册时间、备注(仅查看) ## 数据浏览功能 - **模糊搜索**:在搜索框输入关键词,对所有字符型字段进行 `icontains` 匹配 - **数据总量**:搜索结果下方显示"共 X 条数据" - **表头排序**:点击表头字段名,升序/降序交替排序,箭头指示当前方向 - **Excel 导出**:点击"导出Excel"按钮,导出当前筛选结果为 `.xlsx` 文件,自动调整列宽 ## 菜单配置说明 菜单数据存储在数据库中,可通过后台精细化配置: - **TopMenu(顶部菜单)**:`is_enabled` 控制是否显示,`sort` 控制排序 - **SideMenu(侧边菜单)**:`is_enabled` 控制是否显示,`sort` 控制排序,`top_menu` 关联顶部菜单 - 修改后即时生效,无需改代码 ## 常见问题 ### Q: 迁移时报错 `django.db.utils.NotSupportedError` A: 确保 MySQL 版本为 8.0+,且数据库字符集为 `utf8mb4`。 ### Q: 静态文件加载失败 A: 生产环境需运行 `python manage.py collectstatic`,并在 IIS 中配置静态文件目录。 ### Q: 上传大文件报 HTTP 413 A: 在 `web.config` 中调大 `maxAllowedContentLength` 值。 ### Q: 导出 Excel 时中文乱码 A: 本系统使用 openpyxl 生成 xlsx 格式,默认 UTF-8 编码,不会乱码。 ## 版本信息 - Django 4.2.16 - Python 3.8+ - MySQL 8.0+