Skip to main content

Django admin module for performance monitoring and database optimization

Project description

Django TBase Admin

PyPI version Python versions License: GPL v3 Django versions

Django TBase Admin 是一个强大的 Django 管理模块,专门用于系统性能监控和数据库优化。该模块提供了直观的 Web 界面,让管理员可以轻松查看系统状态、清理过期数据和优化数据库性能。

✨ 主要功能

📊 性能监控仪表板

  • 实时显示数据库表统计信息
  • 监控表大小和记录数量
  • 提供可视化性能指标
  • 自动刷新和状态指示器

🧹 Session 管理

  • 查看当前活跃 sessions 数量
  • 清理过期 sessions
  • 释放数据库空间
  • 批量处理支持

📈 Hitcount 数据管理

  • 统计访问记录数据
  • 按时间范围清理历史数据
  • 支持批量操作和预览模式
  • 性能优化的删除策略

⚡ 数据库优化

  • 表优化操作
  • 索引重建
  • 查询性能分析
  • 智能表选择

🚀 快速开始

安装

使用 pip 安装:

pip install django-tbase-admin

配置

  1. settings.py 中添加模块:
INSTALLED_APPS = [
    # ... 其他应用
    'tbase_admin',
]
  1. 在主项目的 urls.py 中包含模块路由:
from django.urls import path, include

urlpatterns = [
    # ... 其他 URL
    path('tbase-admin/', include('tbase_admin.urls')),
]
  1. 运行数据库迁移:
python manage.py migrate
  1. 收集静态文件:
python manage.py collectstatic

访问

使用管理员账号登录 Django Admin,然后访问 /tbase-admin/performance/ 进入性能仪表板。

📖 详细文档

核心功能

性能仪表板

访问路径:/tbase-admin/performance/

仪表板显示以下信息:

  • 数据库表统计:各表的行数和占用空间
  • 实时数据刷新:点击刷新按钮获取最新数据
  • 可视化图表:表大小和行数的直观展示

Sessions 清理

功能:清理过期的用户会话数据

操作步骤

  1. 在性能仪表板找到 "Sessions 管理" 区域
  2. 点击 "清理 Sessions" 按钮
  3. 系统会自动清理过期会话并显示删除的记录数

Hitcount 数据清理

功能:清理网站的访问统计数据

参数设置

  • 保留天数:删除多少天前的数据(默认 30 天)
  • 批量大小:每次处理的数据量(默认 5000)
  • 预览模式:显示将要删除的数据量,不实际删除

数据库表优化

功能:优化数据库表结构,提高查询性能

操作步骤

  1. 在仪表板找到 "表优化" 区域
  2. 选择要优化的表(可多选)
  3. 点击 "优化选中表" 按钮
  4. 等待优化完成

管理命令

模块提供了以下管理命令:

# 清理过期 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,
    }
}

🔧 开发

开发环境设置

  1. 克隆仓库:
git clone https://github.com/terrychan/django-tbase-admin.git
cd django-tbase-admin
  1. 创建虚拟环境:
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate  # Windows
  1. 安装开发依赖:
pip install -e ".[dev]"
  1. 运行测试:
pytest

代码质量

项目使用以下工具确保代码质量:

  • Black: 代码格式化
  • Flake8: 代码风格检查
  • MyPy: 类型检查
black tbase_admin/
flake8 tbase_admin/
mypy tbase_admin/

📋 系统要求

  • Python 3.8+
  • Django 3.2+
  • MySQL 5.7+ 或 PostgreSQL 10+ (推荐)

🤝 贡献

欢迎贡献代码!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 GPL-3.0 许可证。详情请参阅 LICENSE 文件。

🙏 致谢

  • 感谢 Django 社区的优秀框架
  • 感谢所有贡献者的支持

📞 支持

如果遇到问题或需要帮助:

  1. 查看 文档
  2. 搜索 Issues
  3. 创建新的 Issue

注意: 这是一个开源项目,欢迎社区贡献和反馈!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_tbase_admin-1.1.2.tar.gz (87.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_tbase_admin-1.1.2-py3-none-any.whl (63.8 kB view details)

Uploaded Python 3

File details

Details for the file django_tbase_admin-1.1.2.tar.gz.

File metadata

  • Download URL: django_tbase_admin-1.1.2.tar.gz
  • Upload date:
  • Size: 87.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.20

File hashes

Hashes for django_tbase_admin-1.1.2.tar.gz
Algorithm Hash digest
SHA256 a7ebb23b6a06329788d2ec063b9d84afa37f5e04c72b3611e10ed0504409d5ec
MD5 5440ab0502e590af8402dfbddeb52ba0
BLAKE2b-256 0f66d9e7d92dec92867bd594ef82b1758bc641678148049bd0d7a1ca7930df0d

See more details on using hashes here.

File details

Details for the file django_tbase_admin-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_tbase_admin-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 39cfbf435f4447274def100e19163528a19e1fe4c5e2e24d99525d2448633df2
MD5 585cd175fa27b89fca74677c95aa2fe2
BLAKE2b-256 342716956b03081221c99da91e0521097f59028ac4f0acbb044c7ea3b95912fc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page