是否有一份关于在服务器端使用不同基于python的REST框架来编写自己的RESTful api的推荐列表?最好有正反两面。

请随意在这里添加建议。:)


当前回答

活塞是一个非常灵活的框架,用于为Django应用程序编写RESTful api。

其他回答

我真的很喜欢樱桃皮。下面是一个基于rest的web服务的例子:

import cherrypy
from cherrypy import expose

class Converter:
    @expose
    def index(self):
        return "Hello World!"

    @expose
    def fahr_to_celc(self, degrees):
        temp = (float(degrees) - 32) * 5 / 9
        return "%.01f" % temp

    @expose
    def celc_to_fahr(self, degrees):
        temp = float(degrees) * 9 / 5 + 32
        return "%.01f" % temp

cherrypy.quickstart(Converter())

这强调了我真正喜欢CherryPy的地方;这是一个完全可行的例子,即使对不了解框架的人来说也是可以理解的。如果你运行这段代码,你可以立即在浏览器中看到结果;例如,访问http://localhost:8080/celc_to_fahr?degrees=50将在您的web浏览器中显示122.0。

web2py包括对轻松构建RESTful API的支持,在这里和这里(视频)都有描述。特别要注意的是parse_as_rest,它允许您定义URL模式,将请求参数映射到数据库查询;和smart_query,它允许您在URL中传递任意自然语言查询。

2010年,塔和repoze。bfg社区“联合起来”创建了Pyramid,这是一个基于repoze.bfg的web框架。它保留了其父框架的理念,可用于基于rest的服务。值得一看。

我强烈推荐TurboGears或Bottle:

TurboGears:

比django更简洁 更灵活,更少面向html 但是:不太出名

瓶:

非常快 非常容易学 但是:简约而不成熟

没想到居然没人提到烧瓶。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()