用 Python 开发基于 HTTP 的 RESTful API 一定要用 Flask 之类的 Web 框架吗?还是只要 Python ?

2017-07-06 21:33:22 +08:00
 a251922581
手头有个项目,由于自己是做运维出身,想来想去,现在想用 Python 做个基于 HTTP 的 RESTful 充当服务器端,RESTful API 接收参数后交给对应的函数处理。由于是面向客户要有 GUI,就用 PyQT 之类的做个 GUI,调用 RESTful API。
API 服务器端的话,一般只用类似于 BaseHTTPServer 就行了?还是要用到 Django、Flask 之类的框架? API 是类似这样
Get http://api.haha.com/apiv1/info.json?authtoken=xxx&keyword=xxx&option1=xxx&option2=xxx
返回 json 或文本数据
7218 次点击
所在节点    Python
18 条回复
ipwx
2017-07-06 21:38:17 +08:00
如果你用 BaseHTTPServer,那你的应用程序就是单线程生物,很慢。

如果你用某总支持 WSGI 的框架,包括不仅限于 Flask, Pyramid, Falcon 等,那你就可以在它前面对接一个 WSGI 的容器,比如 gunicorn。然后你就可以用多进程模式泡你的应用了。
noli
2017-07-06 21:51:48 +08:00
稍微话半小时学一下 flask,在你用 http 模块搞第三个业务接口的时候或许用 flask 已经写好了十个。
rogwan
2017-07-06 21:56:22 +08:00
不用框架确实可以写,用了框架你绝对不会回头。flask 写 restful API 不能再爽系列...
bomb77
2017-07-06 22:01:04 +08:00
纯后端 api 推荐 falconframework,开发简单而且性能也好
fly9006
2017-07-06 23:40:58 +08:00
web.py 照样撸得飞起
wqxuan
2017-07-07 00:10:43 +08:00
最近开发在用的:Flask 搭配 Flask-RESTful 插件写 api,调试用 Chrome 结合 Postman 插件。
Trim21
2017-07-07 00:22:11 +08:00
框架是为了快吧,开发上性能上。。
从底层开始写也不是不行,但是不会觉得工作量太多了吗。。
Cooky
2017-07-07 00:34:38 +08:00
flask 现用现查都来得及
billlee
2017-07-07 00:35:23 +08:00
恐怕不太行,WSGI 连基本的路由功能都没有,直接用你就只能自己解析路径了
hq
2017-07-07 01:33:59 +08:00
可以试试阿里云的 API 网关+函数计算,https://www.v2ex.com/t/373578

基本好处是,你只负责写代码,函数计算负责运行代码的所有事情,不需要再考虑买 /升级 /维护虚机。
phithon
2017-07-07 01:48:11 +08:00
推荐 django restframework,一劳永逸。
PythonAnswer
2017-07-07 09:56:13 +08:00
2 个小时你的 django rfw 就跑起来了。
onyourroad
2017-07-07 11:21:38 +08:00
用过 django restframework 挺好用,不过 django 稍微麻烦点。
TuringGunner
2017-07-07 12:10:29 +08:00
只需要 REST API 的话,推荐 Falcon,又小又快
akira
2017-07-07 13:29:34 +08:00
当然不是一定要啊,但是不用的话,等于是自己重新做了个轮子,或者是部分轮子咯
zog
2017-07-07 14:04:18 +08:00
小项目, restful 接口 tornado 很好. 部署方便.
lolizeppelin
2017-07-12 18:35:25 +08:00
可以参考 openstack 的 web 服务怎么写的
vat8888
2018-04-08 20:30:08 +08:00
推荐一个适合新手的超棒的 flask 开发教程: http://xc.hubwiz.com/course/562427361bc20c980538e26f?affid=v2ex7878

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

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

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

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

© 2021 V2EX