用 Python 开发基于 HTTP 的 RESTful API 一定要用 Flask 之类的 Web 框架吗?还是只要 Python ? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
a251922581
V2EX    Python

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

  •  
  •   a251922581 2017-07-06 21:33:22 +08:00 7660 次点击
    这是一个创建于 3026 天前的主题,其中的信息可能已经有所发展或是发生改变。
    手头有个项目,由于自己是做运维出身,想来想去,现在想用 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 或文本数据
    18 条回复    2018-04-08 20:30:08 +08:00
    ipwx
        1
    ipwx  
       2017-07-06 21:38:17 +08:00
    如果你用 BaseHTTPServer,那你的应用程序就是单线程生物,很慢。

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

    基本好处是,你只负责写代码,函数计算负责运行代码的所有事情,不需要再考虑买 /升级 /维护虚机。
    phithon
        11
    phithon  
       2017-07-07 01:48:11 +08:00
    推荐 django restframework,一劳永逸。
    PythonAnswer
        12
    PythonAnswer  
       2017-07-07 09:56:13 +08:00 via Android
    2 个小时你的 django rfw 就跑起来了。
    onyourroad
        13
    onyourroad  
       2017-07-07 11:21:38 +08:00
    用过 django restframework 挺好用,不过 django 稍微麻烦点。
    TuringGunner
        14
    TuringGunner  
       2017-07-07 12:10:29 +08:00
    只需要 REST API 的话,推荐 Falcon,又小又快
    akira
        15
    akira  
       2017-07-07 13:29:34 +08:00
    当然不是一定要啊,但是不用的话,等于是自己重新做了个轮子,或者是部分轮子咯
    zog
        16
    zog  
       2017-07-07 14:04:18 +08:00
    小项目, restful 接口 tornado 很好. 部署方便.
    lolizeppelin
        17
    lolizeppelin  
       2017-07-12 18:35:25 +08:00 via Android
    可以参考 openstack 的 web 服务怎么写的
    vat8888
        18
    vat8888  
       2018-04-08 20:30:08 +08:00
    推荐一个适合新手的超棒的 flask 开发教程: http://xc.hubwiz.com/course/562427361bc20c980538e26f?affid=v2ex7878
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1335 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:13 PVG 01:13 LAX 10:13 JFK 13:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86