开发基于 flask 的 api 服务应用,想在 windows10 环境下开发,生产使用 gunicorn 在 Linux 部署,怎么做

2019-05-20 15:52:41 +08:00
 fanjianhang

各位 v 友,入门 python 不久,目前习惯使用 windows 环境开发项目,团队同事大多数也是。现有个项目打算用 flask 实现并运行 api 服务提供给外部应用调用,查看资料发现,flask 自带的 wsgi 不推荐生产环境使用,官方推荐使用其他的 wsgi 服务器进行部署(如 gunicorn )。 现在想实现在 windows 下开发,可以使用 flask 默认 wsgi,生产环境可以用 gunicorn 运行。(要求:两种环境代码放在同个项目里),请问有什么方法可以实现?

4957 次点击
所在节点    Python
17 条回复
xiexingjia
2019-05-20 15:58:38 +08:00
if __name__ == '__main__':
app.run()
frostming
2019-05-20 16:34:24 +08:00
app.run 官方不推荐了,推荐 flask cli
开发环境:
```
# 环境变量
FLASK_ENV=development
FLASK_APP=myapp:app

flask run
```
Root1997
2019-05-20 17:18:45 +08:00
win10 1903 有个 WSL2 的 linux 环境 windows 开发完直接在 wsl2 进行部署调试
fanjianhang
2019-05-20 17:49:19 +08:00
@frostming 你好,请问有相关推文吗,谢谢
anthoy
2019-05-20 17:50:58 +08:00
docker for windows
luozic
2019-05-20 17:59:20 +08:00
用不用 docker 用上 docker 不用 上 wsl
fanjianhang
2019-05-20 20:13:10 +08:00
@anthoy
@luozic 暂时没用 docker
Flasky
2019-05-20 23:24:54 +08:00
这个应该比较简单吧,开发环境靠 app.run()运行,而且 gunicorn 配置是很容易的了,写一个 shell 脚本,把你的 Application 复制过去,运行一下脚本就 ok 了
Qzier
2019-05-20 23:54:44 +08:00
难道 Windows 上开发和 Linux 上部署冲突?我反正是没遇到。
kosmgco
2019-05-21 00:09:42 +08:00
https://realpython.com/kickstarting-flask-on-ubuntu-setup-and-deployment/

看下这个,用 supervisor 守护 gunicorn 启动的 flask app
Trim21
2019-05-21 05:28:59 +08:00
开发和部署用不同的命令启动服务器不就好了,在本地 python server.py 没必要在服务器上也一定是 python server.py 呀。
hp66722667
2019-05-21 08:44:24 +08:00
http://helloflask.com/ 这个应该可以帮助到你
Marsss
2019-05-21 08:47:52 +08:00
supervisor+nginx+gunicorn+flask
iweus
2019-05-21 08:59:24 +08:00
建个脚本跑一下就可以了 gunicorn -w 4 -b 127.0.0.1:8000 run:appx
JimmyTinsley
2019-05-21 09:26:59 +08:00
本机上开发环境直接 app.run(), 部署时用 gunicorn 跑呗. 可以大致参考下这个项目的做法 https://github.com/open-falcon/dashboard
fngtz
2019-05-21 15:52:48 +08:00
pycharm 有很方便的远程调试功能。

用 docker,去官方仓库能搜到别人写好的 image 来参考 /直接用,把代码挂载出来。

不用 docker 的话,systemd 来管理 gunicorn 也很方便。

总归是 pycharm 的方便,一键同步最方便。
fanjianhang
2019-05-22 11:21:12 +08:00
谢谢各位 v 友的热心帮助,我目前参照 @liujie333333 的方法进行尝试,加上有现成代码可供参考,谢谢大伙

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

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

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

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

© 2021 V2EX