python - djangoproject.com 如何部署到产品?我应该打包我的 django 项目来部署它吗?

标签 python django deployment packaging

<分区>

我知道这不完全是一个 SO 风格的问题,但我认为知道答案会很有启发性。

source djangoproject.com 对于理解 Django 项目的可能布局非常有帮助。但是,缺少setup.py文件表明该项目未“打包”投入生产。

我对“如何设置 nginx”、“使用哪个数据库”、“如何 <insert detail of hosting>” 中的任何一个都不感兴趣。我有兴趣了解的内容包括:

  1. 他们如何部署 djangoproject.com部分到他们的生产服务器?
    • 他们只是做了一个 git pull在他们的盒子上把文件放好?还是 scp/rsync/ftp?
    • 谁/什么执行此步骤?我猜它是自动的,但它是根据标签触发的吗?或者关闭 .tar.gz 文件放在一个特殊的位置? (鉴于没有标签/发布并且 github 项目中只有一个 master 分支,我猜想将其部署到 master 上的任何内容?)
  2. 如果需要,他们如何管理回滚?/它是自动化的吗?(具体细节不需要,但一般信息会很好)
  3. 我应该打包我的应用程序进行部署吗?
    • 我一直更喜欢打包部署(即我打包我的项目,将其放在私有(private) PyPI 中并有一个单独的“部署”项目从中安装),但我开始怀疑是否有必要/a好主意与否。

这里有很多关于在各种情况下部署细节的问题(apache vs nginx,AWS vs heroku vs your own, ansible vs fabric vs...),但我真的想把重点放在关系上打包/项目布局和部署。

最佳答案

这是一个非常开放的问题。

  1. 出于多种原因,我肯定会反对 git pull.. 即,将不需要的代码拉入生产环境。有很多 CI/CD 服务,例如 AWS codedeploy,可以自动化这个过程。

  2. 回滚也可以在 CI/CD 级别自动进行,许多服务允许您选择一个已部署的修订来回滚,和/或从以前的 git 提交重新部署一个新修订。

  3. 我还没有看到这种类型的部署。您的想法是对的,我建议您查看 Docker and Docker Compose

关于python - djangoproject.com 如何部署到产品?我应该打包我的 django 项目来部署它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49189799/

相关文章:

python - 如何使用 .translate() 从 Python 3.x 中的字符串中删除标点符号?

python - 在 Python 中从十进制转换为任意基数

python - 如何在 Python 包中正确导入子模块?

python - 绘制具有多个标签的混淆矩阵 sklearn

python - django 模型中的一对多关系

sharepoint - Powershell 启动进程在远程 session 中被忽略

git - 在我自己的服务器上部署 Meteor,但在版本控制 repo 协议(protocol)中?和 MongoHQ

python-docx 用 MySQL 数据生成文档

python - 如何将今天的日期添加到 django 模板

maven - 为什么要运行tomcat7:deploy与tomcat7:redeploy?