数据库驱动的方式将您的Django网站置于维护模式。
项目描述
当前版本:2.0.0
此项目使将Django网站置于“维护模式”或更技术性地返回HTTP 503响应变得简单。
与其他实现略有不同的是,维护模式标志存储在数据库中,而不是设置或环境变量中。如果您的网站部署到多个服务器,基于集中式数据库的维护标志可以轻松地将它们同时启动或关闭。
要求
先决条件
在安装django-maintenancemode-2之前,您必须在数据库中至少有一个站点条目。
支持的Python版本
2.7, 3.x
支持的Django版本
4.x使用最新版本
2.x >= 3.x,请使用版本1.3.1
< 2,请使用版本1.1.9
安装
pip安装django-maintenancemode-2
– 或 –
从源下载django-maintenancemode-2
*可选:启用虚拟环境
运行python setup.py install或将maintenancemode添加到您的PYTHONPATH
设置和必需值
确保启用站点框架,并且您在站点表中至少有一个条目。
将maintenancemode.middleware.MaintenanceModeMiddleware添加到您的MIDDLEWARE_CLASSES
将 maintenancemode 添加到您的 INSTALLED_APPS 中。
运行 python manage.py migrate 以创建 maintenancemode 表。
运行您的项目以自动添加 maintenancemode 数据库记录。
将 503.html 模板添加到模板目录的根目录,或者可选地添加 MAINTENANCE_503_TEMPLATE 路径到设置中的 503.html 文件位置。
maintenancemode 将忽略以默认 Django Admin url: ^admin 开头的任何模式,因此您可以将其关闭。如果您使用自定义 url 进行管理,您可以通过在设置中添加 MAINTENANCE_ADMIN_IGNORED_URLS 列表来覆盖忽略的管理模式。例如:['^my-custom-admin', '^my-other-custom-admin']
您还可以通过将 MAINTENANCE_BLOCK_STAFF 设置为 True 来阻止默认由维护模式忽略的员工用户。
用法
django-maintenancemode-2 的图片
开启维护模式 开启
要将站点置于“维护模式”,请勾选“维护模式”复选框,并在 Django Admin 的“Maintenancemode”部分下保存。下次您访问站点的公开部分时,如果
您未以超级用户或员工用户身份登录
您正在查看的 URL 不在忽略模式列表中
您的 REMOTE_ADDR 不在 INTERNAL_IPS 设置中
或者您可以使用 setmaintenance 管理命令
# 为当前 settings.SITE_ID 开启维护模式 ./manage.py setmaintenance on
# 为站点 2 和 3 开启维护模式 ./manage.py setmaintenance on 2 3
这可以用于 fabric 部署脚本等。
关闭维护模式 关闭
登录,取消勾选“维护模式”复选框并保存。
或者您可以使用 setmaintenance 管理命令
# 为当前 settings.SITE_ID 关闭维护模式 $ ./manage.py setmaintenance off
# 为站点 2 和 3 关闭维护模式 $ ./manage.py setmaintenance off 2 3
测试和示例应用
包含了一个“testproject”应用,它还包含您可以运行单元和功能测试的单元测试。
您需要运行 manage.py migrate 以创建测试项目数据库。
testproject 中只有两个视图:- / - /ignored-page
要查看 maintenancemode 的实际效果,请登录 Django 管理员,并将维护模式设置为 true。登出后,访问主页,您将看到维护页面。
要将 maintenancemode 忽略“ignored-page”视图,只需将其 URL 模式添加到忽略 URL 中
^ignored-page/$
现在,您应该能够访问 ignored-page 视图,而不管维护模式的状态如何。这对于您在网站上其他部分工作时仍然希望人们能够访问的联系或帮助页面很有用。
数据库迁移
./manage.py migrate 应该添加必要的表。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。