Django MaintenanceMode允许您临时关闭站点进行维护工作

django-maintenancemode的Python项目详细描述


django maintenancemode是一个中间件,它允许您临时关闭 你的网站维护工作。

具有人员凭据的登录用户仍然可以完全使用 从中定义的IP地址访问站点的用户可以访问的站点 Django的^{TT1}$。

作者是Remco Wendt,还有一些伟大的contributors

https://img.shields.io/pypi/v/django-maintenancemode.svghttps://img.shields.io/pypi/dm/django-maintenancemode.svghttps://img.shields.io/github/license/shanx/django-maintenancemode.svghttps://img.shields.io/travis/shanx/django-maintenancemode.svg

工作原理

maintenancemode的工作方式与在 Django工作。它添加了一个handler503,您可以在 mainurls.py或者可以向模板中添加503.html。 目录

  • 如果用户和工作人员已登录,则维护页面为 不显示。

  • 如果用户的IP位于INTERNAL_IPS,则维护页为 不显示。

  • 覆盖在维护模式下使用的默认视图 启用后,您只需在 ROOT_URLCONF,类似于自定义其他error handlers, 例如:

    handler503='example.views.maintenance_mode'

安装

  1. 从github签出maintenancemode,或者使用pip安装:

    pip install django-maintenancemode
    
  2. maintenancemode添加到INSTALLED_APPS

    INSTALLED_APPS=(...'maintenancemode',)
  3. MaintenanceModeMiddleware添加到MIDDLEWARE_CLASSES,确保它位于AuthenticationMiddleware

    MIDDLEWARE_CLASSES=(...'django.contrib.auth.middleware.AuthenticationMiddleware','maintenancemode.middleware.MaintenanceModeMiddleware',)
  4. 在项目的settings.py文件中添加名为MAINTENANCE_MODE的变量:

    MAINTENANCE_MODE=True# Setting this variable to ``True`` activates the middleware.

    或者将MAINTENANCE_MODE设置为False,并使用maintenance命令:

    python ./manage.py maintenance <on|off>
    

请参阅example应用程序。此应用程序用于 手动测试此包的功能。这也可以作为 一个很好的例子…

你只需要django 1.4或更高版本就可以运行它。可能会用老的 版本,但未经测试。

配置

您可以在settings.py

中设置各种可选配置选项
# Enable / disable maintenance mode.# Default: FalseMAINTENANCE_MODE=True# or ``False`` and use ``maintenance`` command# Sequence of URL path regexes to exclude from the maintenance mode.# Default: ()MAINTENANCE_IGNORE_URLS=(r'^/docs/.*',r'^/contact')

许可证

django-maintenancemode是根据bsd许可证发布的。

更改

0.11.3

  • 添加了对django 2.x的支持,删除了对django<;1.11的支持。它可能 仍然适用于django 1.8,但这不再是测试。

0.11.2

  • 为django 1.10版本做好准备。
  • 放弃了对django 1.3及更高版本的支持。

0.11.1

  • 在内部IP中启用网络指定

0.11.0

  • 添加管理命令以设置维护模式开/关

0.10.1

  • 确保应用程序在django 1.8上运行。

0.10.0

  • 摆脱了对setuptools的依赖
  • 增加了从维护模式中排除特定路径的能力 MAINTENANCE_IGNORE_URLS设置。
  • 在呈现503.html模板时使用requestcontext。
  • 使用tox来运行测试,而不是构建。
  • 确保应用程序在django 1.4上运行。

0.9.3

  • 切换到github的小文档更新,预计很快会有更多更改。

0.9.2

  • 修复了setuptools的一个问题,感谢您报告此ksato9700

0.9.1

  • 使用django-1.0版本测试了django maintenanceMode(遵循1.0.x版本分支)
  • 将buildout.cfg和bootstrap与项目的源版本捆绑在一起,允许重复构建
  • 中间件现在使用自己的默认配置文件,这要感谢semente提供的补丁程序
  • 使用内部IP检查需要访问的用户。用户信息系统工作人员将留在原地 因为向后不相容。感谢乔舒亚的创意
  • 让setup.py sdist只分发maintenancemode本身,不再分发测试和构建内容
  • 在setup.py的long_描述中使用自述文件和更改,从Jeroen的djangoRecipe中窃取:)
  • 更新了文档,现在使用pypi作为文档源(从google代码链接到这里)

0.9

首次发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否显式向上抛出异常?   java无法在安卓 studio中获取json   java如何声明映射<String,Set<String>>的指针?   java随机化线程睡眠   java如何查找ArrayList中的项目数量?   java ImageView不使用折叠工具栏折叠   java什么时候执行这些类和子类静态块(对于枚举)?   jvm为什么Java上的默认MaxMetaspaceSize非常大?   java PrimeFaces树在选择多个节点时显示不同的上下文菜单   java为JMS队列设置用户和密码   java在Slick2D上只显示图像的一半?   sql server Java REST api http方法类型,用于调用执行sql删除查询的存储过程   java如何只读取一行文本文件?   java无法使我的扫描仪nextLine()在while循环中正常工作