为您的应用程序失败时生成静态错误页面(502 等)
项目描述
所以... 很明显,您是一位从不编写错误的出色程序员,也是一位从不让您的应用程序崩溃的出色系统管理员。但是我们其他人呢?
gunicorn
有时,运行您的
Django网站的上游应用程序进程(例如)
出现故障,您的前端网络服务器(例如nginx
)必须向访问者提供 502 错误页面。
这为您提供了三个选项:
-
只需使用前端服务器中的任何默认错误页面。他们会非常丑陋和尴尬。
-
创建与您网站的样式相匹配的自定义错误页面。也许您将它们部署为
static
文件并将前端服务器指向正确的位置。这开始很好,但是当您更改站点样式时,静态错误页面将不同步。您将为自己创建工作以保持更新。 -
使用这个
django-downpage
项目!它提供了一个downpagegenerate
可以在运行后立即运行的命令collectstatic
。它将从模板构建静态错误页面。它们将始终是最新的,但即使在应用服务器出现故障时也可以作为静态资源使用。
用法:
在开始之前,建议确保已经配置了错误页面handler404
和错误页面。handler500
这些视图中的模板可以作为downpage
将要使用的模板的基础。
django-downpage
与任何其他依赖项一样从 PyPI安装。要快速开始,您可以运行:
$ pip install django-downpage
requirements.txt
尽管对于生产用途,使用 a或等效项会更易于管理。
现在编辑您的settings.py
以确保downpage
被列为已安装的应用程序。顺序不重要:
INSTALLED_APPS = [
# ...snip...
"downpage",
# ...snip...
]
此外,settings.py
您还需要定义应该构建的页面列表:
DOWNPAGE_PAGES = [
("502.html", "myapp/downpage_502.html"),
("503.html", "myapp/downpage_503.html", {"name", "Service Unavailable"}),
("504.html", "myapp/downpage_504.html"),
# ...etc...
]
元组的第一个元素是将构建的目标文件,相对于STATIC_ROOT
目录。第二个元素是模板名称,兼容任何可以被内置render(...)
快捷方式理解的名称。可选的第三个元素定义了在渲染模板时将提供给模板的额外上下文。
此时您需要创建模板。一个好的起点是为 404 或 500 错误提供的页面。如果您愿意,可以为每个生成的页面使用相同的模板。如果您已将站点设置为使用它们,您也可以使用新型 Jinja2 模板。
现在更新您用于部署的任何过程。您可能已经manage.py collectstatic
在此过程中调用。downpagegenerate
管理命令最好在此之后立即运行:
# ...snip...
/path/to/virtualenv/bin/python manage.py collectstatic
/path/to/virtualenv/bin/python manage.py downpagegenerate
# ...snip...
然后您需要设置您的前端服务器以了解这些文件。这取决于您使用的服务器。
项目详情
django_downpage -1.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0931236f2801043aaa8bd44f99d1ce8990cf0b94463ac867f81e5da302479a7d |
|
MD5 | 5c043bc59e36cb7ad893a4d085954083 |
|
布莱克2-256 | 4c64a76ef879e39d8841ca1fb43138692194b2351d8032db03c8d9608491cade |