Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将Flask应用更新到生产服务器_Python_Git_Deployment_Flask - Fatal编程技术网

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

Python 如何将Flask应用更新到生产服务器,python,git,deployment,flask,Python,Git,Deployment,Flask,这是我在堆栈溢出中的第一个问题,我总是在这里找到答案,现在是时候问一些我无法解决的问题了 我一直在谷歌上搜索这个问题,但我无法解决我的问题 我想使用Flask在python中创建一个项目。我知道如何设置服务器来运行应用程序,我正在使用 Ubuntu服务器12.04 阿帕奇 瓶蟒 数字海洋制作服务器 用于计算机开发的基本操作系统 我知道如何在上按照本教程配置应用程序 我想成为“专业人士”,我来自PHP,通常使用FTP将我的更改从我的计算机上传到生产服务器。我上一份工作中有人将SVN配置为控制版本以

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

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

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

  • Ubuntu服务器12.04
  • 阿帕奇
  • 瓶蟒
  • 数字海洋制作服务器
  • 用于计算机开发的基本操作系统
  • 我知道如何在上按照本教程配置应用程序

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

    我需要为我的项目类似的东西,但我不知道怎么做。如果我在电脑中编辑了一个.py文件,并通过FTP上传该文件,则更改不会反映在我的浏览器中。我必须重新启动整个服务器才能看到变化,当然这不是一个聪明的工作方式

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

    如何进行此设置?在我从计算机提交更新时,我是否必须在生产服务器上执行任何命令?否则,一切都将自动与git


    我要感谢这些答案和帮助,因为我不想再回到PHP上来了。简短的、通用的答案是,在Python中,您将使用一个部署工具和一组部署脚本

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

    根据您的示例,您可以为连接到远程服务器的Fabric编写脚本,通过SFTP上传代码,然后优雅地重新启动服务器


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

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


    我说这不是一个完整的解决方案,因为gitreceive所做的只是调用一个脚本,您必须使用推送的文件编写该脚本。您的脚本必须安装文件、运行任何安装任务、重新启动服务器等。

    我使用与您相同的配置(除了我使用Ubuntu 14.04),并发现以下两个教程非常有用。如果我理解你的要求,这将推动你前进:


  • 您已经列出了第二个教程,因此第一个教程应该向您展示如何设置git以将部署推送到服务器。它还向您展示了如何设置一个beta分支,以防您不想立即推动prod

    您使用什么在Apache内部运行应用程序?mod_wsgi?是的,我使用mod_wsgi我安装了libapache2 mod wsgi mod_wsgi你不应该重新启动Apache。您应该能够只触摸mod_wsgi加载的脚本。例如
    touch/path/to/wsgi.py
    。如果你真的开始使用Git,你可能想看看。谢谢你的回答,但是创建一个脚本在我的生产服务器上自动完成我的所有手动操作似乎很复杂。我不认为这是正确的方法,我仍然喜欢用Git设置你的Fabric任务可以使用Git。@CharlieEspinoza:学习使用适当的部署工具似乎是一项巨大的投资,但你确实想以专业的方式来做这件事,在专业开发领域就是这样做的。正如dirn所说,如果您坚持,您可以使用Git制作织物。也就是说,Git不是一个部署工具。它不跟踪空目录,也不跟踪文件权限。一旦您使用Fabric,您对Git的需求就会大大减少。您还将获得许多附加功能,例如部署到多个框中-不再有许多专业项目使用单个框。您好,谢谢大家的评论。最后,我实现了用于部署的结构。