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.1.tar.gz (87.7 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.1-py3-none-any.whl (63.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_tbase_admin-1.1.1.tar.gz
  • Upload date:
  • Size: 87.7 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.1.tar.gz
Algorithm Hash digest
SHA256 78631df7958d4525ed2cfcc1db418ad567aa2142a73a4c954834c40c15f99127
MD5 ff6077bd6689f83420726decd5157a1a
BLAKE2b-256 6a9d2ab839fe45aaf44c27b161a23760583a13b9bbf97e5eb3c1c4a53de1ca75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_tbase_admin-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d0b6e288c4a022b0251a67afd2e9ac3a0909a2659ef6606d082b293674ccded5
MD5 edccaed8517ef3513ef4162785766ff0
BLAKE2b-256 fbc463e9bff9697f8c61390367306dfe86b0cda0f600a47ca7625897c3d4127f

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