gpt4 book ai didi

django - 如何在没有 Mercurial 文件的情况下将 Django 部署到生产服务器?

转载 作者:行者123 更新时间:2023-12-03 05:29:29 24 4
gpt4 key购买 nike

我最初是一名 .NET 开发人员,当时当我们必须从 Visual Studio 发布软件时,我们必须将其切换到 Release模式,以确保删除调试 Hook 并保留存储库文件。最终结果是一组干净的文件,准备投入生产。

在切换到 Django 并使用它近三个月后,我现在准备部署第一个应用程序。我已经阅读了相当多的内容。我知道如何将调试设置为 False 并拥有 production_setting.py 以及如何在 Apache 上使用 WSGI 进行部署。

但我仍然没有弄清楚推出版本的一个很好的过程。

据我现在所知,我会为发布执行以下操作:

  • 手动将所有文件复制到上传目录(不包括隐藏的 Mercurial 目录)
  • 将它们全部压缩
  • 通过 SCP 将它们发送到 Ubuntu 服务器
  • 登录服务器
  • 解压 zip 文件并将所有内容放置到位
  • 修改setting_Production.py并输入凭据

这是一个健康的 Django 部署过程吗? :)
仅供引用,我正在使用 Aptana Studio 3.2.1

感谢您的任何提示

最佳答案

您可以查看Fabric ;文档将其描述为

... a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

它能够做您想做的所有事情。

您的“部署”任务可能会有多个子任务(_upload_tar_from_hg()_migrate()等),但是总体情况如下:

from fabric.api import * 

env.release_name = 'foo_bar-1.0'
env.deployment_path = '/var/www/django/%s' % env.release_name

def deploy():
local('hg archive -t tgz $s.tar.gz' % env.release)
put('%s.tar.gz' % env.release, env.deployment_dir)
run('cd %s && tar -xzvf %s.tar.gz' % (env.deployment_path, env.release))
local('rm %s.tar.gz' % env.release)
run('cd %s/%s && ln -s settings_production.py settings.py' % (env.deployment_path, env.release))

这依赖于在源代码管理中拥有单独的settings_Production.py,这可能不合适。 Fabric 可以在文本文件中查找和替换,或者您可以使用 a local_settings.py approach 组合设置.

查看the Fabric tutorial填补空白(例如指定服务器的连接详细信息。设置完成后,只需运行

fab deploy

并且该过程应该自动进行。

注意从 Mercurial 创建一个没有 hg 元数据的存档是使用 hg archive 命令一步完成的)

关于django - 如何在没有 Mercurial 文件的情况下将 Django 部署到生产服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com