Flask怎样进行日常部署?

2013-03-18 19:01:46 +08:00
 hustlzp
最近从CodeIgniter转到Flask,开发环境也从Windows转到Linux。

想问下怎么样进行日常的部署啊?就是说我不定期会对网站的功能进行增加,然后就需要把代码弄到服务器上面去。

之前用PHP的时候,就是每次代码写完之后就用FTP一股脑把代码传上去。现在转到python后我还是用老办法:在vps上建一个FTP server,然后每次还是用FTP软件传代码上去,然后service apache2 restart...

感觉这种方法太笨了,求各位大大指点更加高效的方法啊啊!
5222 次点击
所在节点    Python
9 条回复
liuxurong
2013-03-18 19:05:49 +08:00
linnchord
2013-03-19 10:03:36 +08:00
最简单的情况下可以用git直接从代码库拉取同步,要自动点可以通过git的更新hook或者fabric。
janxin
2013-03-19 13:40:58 +08:00
@linnchord 这个有没有具体部署方案,求一下
linnchord
2013-03-19 14:43:15 +08:00
@janxin 不知道“具体部署方案”指什么,如果是Flask项目的运行部署,我们是通过nginx+uwsgi,随便google一大把,就不扯了。如果指项目代码发布部署,其实上面那句话就差不多了。

更具体一点,

* 项目的git服务器创建在公网上,我们是通过gitlab管理。
* 代码的部署直接从git服务器上拉取主分支(一般是master),这样实现同步和回滚都没问题。
* 如果要避免登录到服务器上操作,可以通过fabric,很简单犀利的东东,看文档+写一个发布脚本半个小时足够。
* 有些人通过git的hook实现发布,就是当master分支更新时出发事件自动调用发布脚本。不过我觉得这个局限比较大,如果是公司团队正式项目一般不建议采用。
* 还要更自动化可以考虑持续集成工具,项目测试、集成、发布一起搞定,例如Jenkins,不过这个就比较麻烦了,看文档慢慢搞。
janxin
2013-03-19 15:58:10 +08:00
@linnchord 主要是源码->服务器并实现自动reload的资料
linnchord
2013-03-19 16:34:22 +08:00
@janxin 代码发布基本就是上面流程了

自动reload可不适合于生产环境,最好不要这样搞。uwsgi提供touch重启功能,运行时touch一个指定文件(配置指定)即可无痛(不影响当前用户访问)重启。通过fabric,这个操作可在客户端执行。
stingh711
2013-03-19 16:35:09 +08:00
fabric
hustlzp
2013-03-19 18:41:09 +08:00
@linnchord
@stingh711

感谢!
janxin
2013-03-20 00:14:57 +08:00
@linnchord 感谢分享

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/63324

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX