Django admin module for performance monitoring and database optimization
Project description
Django TBase Admin
Django TBase Admin 是一个强大的 Django 管理模块,专门用于系统性能监控和数据库优化。该模块提供了直观的 Web 界面,让管理员可以轻松查看系统状态、清理过期数据和优化数据库性能。
✨ 主要功能
📊 性能监控仪表板
- 实时显示数据库表统计信息
- 监控表大小和记录数量
- 提供可视化性能指标
- 自动刷新和状态指示器
🧹 Session 管理
- 查看当前活跃 sessions 数量
- 清理过期 sessions
- 释放数据库空间
- 批量处理支持
📈 Hitcount 数据管理
- 统计访问记录数据
- 按时间范围清理历史数据
- 支持批量操作和预览模式
- 性能优化的删除策略
⚡ 数据库优化
- 表优化操作
- 索引重建
- 查询性能分析
- 智能表选择
🚀 快速开始
安装
使用 pip 安装:
pip install django-tbase-admin
配置
- 在
settings.py中添加模块:
INSTALLED_APPS = [
# ... 其他应用
'tbase_admin',
]
- 在主项目的
urls.py中包含模块路由:
from django.urls import path, include
urlpatterns = [
# ... 其他 URL
path('tbase-admin/', include('tbase_admin.urls')),
]
- 运行数据库迁移:
python manage.py migrate
- 收集静态文件:
python manage.py collectstatic
访问
使用管理员账号登录 Django Admin,然后访问 /tbase-admin/performance/ 进入性能仪表板。
📖 详细文档
核心功能
性能仪表板
访问路径:/tbase-admin/performance/
仪表板显示以下信息:
- 数据库表统计:各表的行数和占用空间
- 实时数据刷新:点击刷新按钮获取最新数据
- 可视化图表:表大小和行数的直观展示
Sessions 清理
功能:清理过期的用户会话数据
操作步骤:
- 在性能仪表板找到 "Sessions 管理" 区域
- 点击 "清理 Sessions" 按钮
- 系统会自动清理过期会话并显示删除的记录数
Hitcount 数据清理
功能:清理网站的访问统计数据
参数设置:
- 保留天数:删除多少天前的数据(默认 30 天)
- 批量大小:每次处理的数据量(默认 5000)
- 预览模式:显示将要删除的数据量,不实际删除
数据库表优化
功能:优化数据库表结构,提高查询性能
操作步骤:
- 在仪表板找到 "表优化" 区域
- 选择要优化的表(可多选)
- 点击 "优化选中表" 按钮
- 等待优化完成
管理命令
模块提供了以下管理命令:
# 清理过期 sessions
python manage.py tbase_clearsessions
# 清理 hitcount 数据
python manage.py tbase_clearhitcount --days=30 --batch-size=5000
# 预览模式清理
python manage.py tbase_clearhitcount --dry-run
API 接口
模块提供 RESTful API 用于集成:
GET /tbase-admin/api/stats/ # 获取数据库统计
POST /tbase-admin/cleanup/sessions/ # 清理 sessions
POST /tbase-admin/cleanup/hitcount/ # 清理 hitcount
POST /tbase-admin/optimize/tables/ # 优化表
⚙️ 配置选项
可以在 settings.py 中添加自定义配置:
TBASE_ADMIN = {
'DEFAULT_BATCH_SIZE': 5000,
'DEFAULT_CLEANUP_DAYS': 30,
'MONITORED_TABLES': [
'django_session',
'hitcount_hit',
'hitcount_hit_count',
'tbase_post_post',
'tbase_page_basepage',
'django_admin_log'
],
'ALERT_THRESHOLDS': {
'SESSION_COUNT_WARNING': 10000,
'TABLE_SIZE_WARNING_MB': 500,
'HITCOUNT_COUNT_WARNING': 100000,
}
}
🔧 开发
开发环境设置
- 克隆仓库:
git clone https://github.com/terrychan/django-tbase-admin.git
cd django-tbase-admin
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
- 安装开发依赖:
pip install -e ".[dev]"
- 运行测试:
pytest
代码质量
项目使用以下工具确保代码质量:
- Black: 代码格式化
- Flake8: 代码风格检查
- MyPy: 类型检查
black tbase_admin/
flake8 tbase_admin/
mypy tbase_admin/
📋 系统要求
- Python 3.8+
- Django 3.2+
- MySQL 5.7+ 或 PostgreSQL 10+ (推荐)
🤝 贡献
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
本项目采用 GPL-3.0 许可证。详情请参阅 LICENSE 文件。
🙏 致谢
- 感谢 Django 社区的优秀框架
- 感谢所有贡献者的支持
📞 支持
如果遇到问题或需要帮助:
注意: 这是一个开源项目,欢迎社区贡献和反馈!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_tbase_admin-1.1.3.tar.gz.
File metadata
- Download URL: django_tbase_admin-1.1.3.tar.gz
- Upload date:
- Size: 87.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fc6a91941ee7b20fbc033cc41ac294335dfe8bfa1bb0787cef05143f6768adc
|
|
| MD5 |
2d8f5d8688a9d6cb15fd12a991561593
|
|
| BLAKE2b-256 |
d2d07d1bb1c4ce2a966c6c1ccfb014c993955c6f6f225de8f289fa00f1be4995
|
File details
Details for the file django_tbase_admin-1.1.3-py3-none-any.whl.
File metadata
- Download URL: django_tbase_admin-1.1.3-py3-none-any.whl
- Upload date:
- Size: 64.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb3eec077c00927f739a91b97b1a40c7d6ecb530493b7e7d96a6e38a82624875
|
|
| MD5 |
61e99452a7ef72344ce8951a74d6b086
|
|
| BLAKE2b-256 |
be52e06f2478db39702928be5b164ddc65d7f3f73a7f8b83bb7f43cbb616b5fc
|