跳转到主要内容

django-production使您的项目准备好投入生产

项目描述

django-production

为运行Django到生产环境(或任何其他部署环境)而设计的有见地的默认设置。

安装

pip install django-production
DJANGO_SETTINGS_MODULE=yourproject.settings django-production-apply

功能说明

当您安装此软件包时,它将安装以下依赖项

  • whitenoise - 用于服务静态文件
  • django-environ - 用于从环境变量读取设置
  • django-webserver[gunicorn] - 通过 manage.py 运行Web服务器
  • django-alive - 在 /-/alive/ 提供健康检查端点

运行 django-production-apply 将将 django-production 设置追加到您的项目设置文件,并将健康检查端点添加到您的项目的 urlpatterns。您可以在 settings.py 中查看添加的设置。

您应将 django-production 添加到您的需求中,以保持必要的依赖项。或者,一旦应用了补丁,您可以将依赖项移动到您自己的需求文件中,并完全删除 django-production

生产环境运行

使用 python manage.py gunicorn 启动Web服务器。

WEB_CONCURRENCY 环境变量设置为要运行的gunicorn工作进程数。从CPU核心数的两倍开始。

必需的环境变量

  • DJANGO_ENV - 设置为 production 以启用生产设置
  • SECRET_KEY - 您项目的密钥

使用 DJANGO_ENV=production 时的可选环境变量

在底层,django-production 使用 django-environFileAwareEnv 类来读取环境变量。这允许您将 _FILE 添加到任何环境变量中,以从文件中加载值。例如,DATABASE_URL_FILE=/var/run/secrets/DATABASE_URL 将从该文件加载数据库URL。

答案

您没有提出任何问题,但如果您有,可能会是以下之一

为什么你要写这个?
Django 对如何部署持中立态度。这使得新用户更难。即使是经验丰富的用户也可能从项目到项目复制这些内容。这旨在使项目准备部署变得容易。我还希望这能给我们一个机会,在社区中就这些设置达成共识,也许还可以将其中的某些内容纳入 Django 本身。

为什么你要写我的设置文件?你只需导入即可。

  1. 这使查看更改变得更容易。我认为设置文件应该尽可能简单。将设置放在那里使得调试更容易。
  2. 一刀切的方法在这里永远不会奏效。我正在追求大多数情况下都适用。一旦应用更改,用户可以自由地根据自己的喜好进行更改。这基本上就是 startproject 已经在做的事情。

我不同意你使用的设置/包。
这不是一个问题,但是好吧。请随时提交包含您的建议和理由的问题或拉取请求。我们感谢反馈和贡献。我们可能不会接受那些我们认为不符合该项目精神(记住,它是有观点的)的更改。如果您不确定,请不要犹豫,提出疑问。

发布新版本

  1. 更新 django_production/__init__.py 中的版本
  2. 更新 CHANGELOG.md 中的变更日志
  3. 提交更改
  4. 用版本号标记提交(git tag -s v0.9.9 -m v0.9.9
  5. 推送提交和标记(git push && git push --tags
  6. 使用 flit publish 发布到 PyPI

待办事项

  • 处理常见对象存储的媒体设置
  • 电子邮件设置,包括非SMTP后端如SES

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

django-production-0.1.0.tar.gz (6.4 kB 查看散列)

上传时间

构建分布

django_production-0.1.0-py2.py3-none-any.whl (6.4 kB 查看散列)

上传时间 Python 2 Python 3

由以下组织支持