如何将Flask应用程序更新到生产服务器

时间:2014-01-18 02:27:52

标签: python git deployment flask

这是我在堆栈溢出中的第一个问题,我总是在这里找到答案,现在是时候询问我无法解决的问题了。

我一直在谷歌搜索这个,但我无法解决我的问题。

我想使用Flask在python中创建一个项目。我知道如何设置服务器来运行应用程序,我正在使用

  1. Ubuntu Server 12.04
  2. 的Apache
  3. Flask Python
  4. 数字海洋生产服务器
  5. 开发计算机的初级操作系统
  6. 我知道如何按照digital ocean

    上的本教程配置应用程序

    我想成为“专业”我来自PHP,而且我使用FTP将我的更改从我的计算机上传到生产服务器。我上一份工作中的某人将SVN配置为控制版本以更新生产服务器。

    我的项目需要类似的东西,但我不知道该怎么做。如果我在计算机中编辑.py文件并通过FTP上传文件,则更改不会反映在我的浏览器中。我必须重新启动apache o整个服务器以查看更改,当然这不是一种聪明的工作方式。

    我真的需要帮助来使用git设置工作流程,这个想法很简单。我将在我的计算机上安装git以在我的生产服务器中工作和git,我想使用git部署和更新应用程序并查看应用程序上的更改(观看我的浏览器)但我的 问题是

    我怎么做这个设置?每当我从计算机提交更新时,我是否必须在生产服务器上执行任何命令?或者一切都将自动与git。

    我会答复我的答案和帮助casue我很沮丧,我不想回到PHP

3 个答案:

答案 0 :(得分:1)

简短而一般的答案是,在Python中,您将使用部署工具和一组部署脚本。

Python的常用部署工具选择包括FabricPaver。这些工具本质上有助于创建“任务”脚本,然后您可以运行它们。它们面向部署,因此它们提供了在远程服务器上执行操作的库函数。

根据您的示例,您可以为Fabric编写一个脚本,该脚本将连接到远程服务器,通过SFTP上载代码,并正常重新启动服务器。

我强烈建议花时间学习和使用其中一种工具。除了明显的优势之外,它们还具有许多长期使用的非显而易见的好处,例如:更容易扩展到多个部署目标盒。

答案 1 :(得分:1)

我使用的是相同的配置(除了我使用Ubuntu 14.04),发现以下两个教程非常有用。如果我理解你的要求,这应该会让你继续前进:

  1. How to Set Up Automatic Deployment with Git on a VPS
  2. How to Deploy a Flask Application on an Ubuntu VPS
  3. 您已经列出了第二个教程,因此第一个教程应该向您展示如何设置git以推送部署到您的服务器。它还向您展示了如何设置测试版分支,以防您不想立即推送!

答案 2 :(得分:0)

不是完整的解决方案,但请查看gitreceive。这是一个小型bash脚本,您可以在生产服务器上运行该脚本,以将其配置为通过git push接收代码。

我说这不是一个完整的解决方案,因为所有gitreceive都会调用一个脚本,你必须用推送的文件来编写。您的脚本必须安装文件,运行任何设置任务,重新启动服务器等。