【问题标题】:Python Django How to add a function to maintenance mode?Python Django 如何将功能添加到维护模式?
【发布时间】:2018-05-06 09:46:36
【问题描述】:

我正在使用这个维护模式包https://github.com/fabiocaccamo/django-maintenance-mode 来显示我的维护模板。我的模板显示正确,但我无法向此模板添加功能。

我想在我的维护模板中添加一个功能,例如(订阅时事通讯),但我不知道应该在哪里编写代码。因为当维护开启时,我的views.py代码没有被使用,我的表单也没有显示在我的模板上。

当维护模式开启时,谁能帮我找到向我的模板添加功能的方法?

【问题讨论】:

  • 文档说使用的模板由设置MAINTENANCE_MODE_TEMPLATE 指定。您是否尝试过编辑该模板,或将其设置为指向您自己喜欢的模板?
  • 是的,我配置了MAINTENANCE_MODE_TEMPLATE,并且我的模板显示正确。我的问题是我的代码form = Interstedform(request.POST) if form.is_valid(): form.save()没有被使用
  • 因此我的 HTML 无法将电子邮件保存到我的数据库中。
  • 维护模式的要点是你不能也不要运行任何视图代码。您只能获得(大部分是静态的)模板中的任何内容。

标签: python django templates django-views maintenance


【解决方案1】:

我同意 James 的观点,你错过了维护模式的要点。当您想要升级某些库或部署新版本的 Web 应用时,请将您的 Web 应用置于维护模式。

维护模式开启
升级/部署
维护模式关闭

如果您的部署过程良好,您在维护模式下的时间不会超过几分钟。在此期间,您不需要执行任何视图。特别是如果它以数据库中的一些记录结尾。

但是,如果您确实必须执行某些功能,则需要将其移动到中间件https://docs.djangoproject.com/en/2.0/topics/http/middleware/ 中。只需确保在维护中间件之前执行您的中间件即可。

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 2015-05-03
    • 1970-01-01
    • 2014-02-28
    • 2020-06-09
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2015-10-30
    相关资源
    最近更新 更多