是否有一份关于在服务器端使用不同基于python的REST框架来编写自己的RESTful api的推荐列表?最好有正反两面。
请随意在这里添加建议。:)
是否有一份关于在服务器端使用不同基于python的REST框架来编写自己的RESTful api的推荐列表?最好有正反两面。
请随意在这里添加建议。:)
当前回答
我们正在开发一个严格REST服务的框架,请访问http://prestans.googlecode.com
目前还在Alpha测试阶段,我们正在测试mod_wsgi和谷歌的AppEngine。
寻找测试人员和反馈。谢谢。
其他回答
现在似乎所有的python web框架都可以实现RESTful接口。
对于Django来说,除了tasttypie和活塞,Django -rest-framework是一个很有前途的框架。我已经在上面顺利地迁移了我的一个项目。
Django REST框架是Django的一个轻量级REST框架 旨在使构建良好连接、自我描述的RESTful Web api。
简单的例子:
from django.conf.urls.defaults import patterns, url
from djangorestframework.resources import ModelResource
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from myapp.models import MyModel
class MyResource(ModelResource):
model = MyModel
urlpatterns = patterns('',
url(r'^$', ListOrCreateModelView.as_view(resource=MyResource)),
url(r'^(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MyResource)),
)
以官方网站为例,以上所有代码都提供了api、自解释文档(如基于soap的webservice),甚至还提供了一些沙盒测试。非常方便。
链接: http://django-rest-framework.org/
我真的很喜欢樱桃皮。下面是一个基于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。
我强烈推荐TurboGears或Bottle:
TurboGears:
比django更简洁 更灵活,更少面向html 但是:不太出名
瓶:
非常快 非常容易学 但是:简约而不成熟
2010年,塔和repoze。bfg社区“联合起来”创建了Pyramid,这是一个基于repoze.bfg的web框架。它保留了其父框架的理念,可用于基于rest的服务。值得一看。
没想到居然没人提到烧瓶。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()