没有前端的REST/JSON Web服务使用什么Python框架?

33

我需要为iOS应用程序创建一个Python REST/JSON web服务,以便进行交互。该网站上没有前端界面。

哪种框架是最快速、最轻量级的?实现的学习曲线也需考虑在内。

从我所做的研究来看,Django-Tastypie或Djanjo-Piston似乎是最佳选择,而Tastypie胜出是因为它的代码库正在积极维护?


可能是Python REST(Web服务)框架的推荐?的重复问题。 - joragupra
6个回答

25

在 Pycon Australia 大会上,Richard Jones 比较了最受欢迎的轻量级 Web 框架。其中 Bottle 获得了最高分。以下是该演讲的完整视频


13
一般来说,我认为你会发现web2py是最容易设置、学习和使用的框架之一。web2py让生成JSON非常容易(只需添加一个.json扩展名),并且现在包括新功能,可以自动创建RESTful web服务以访问数据库模型。特别是,请查看parse_as_restsmart_query功能。
如果需要帮助,请在邮件列表上询问。

6

说到轻量级,CherryPy 是相当不错的选择。

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

1
更不用说最近版本中的 @tools.json_in()@tools.json_out() 了。 - fumanchu

2
如果我是你,我会使用web.py,这非常方便快速地进行轻量级REST应用程序的原型设计。请查看以下摘自首页的代码片段:
import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'World'
        return 'Hello, ' + name + '!'

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

1

请查看Flask及其扩展Flask-RESTful

from flask import Flask
from flask.ext import restful

app = Flask(__name__)
api = restful.Api(app)

class HelloWorld(restful.Resource):
    def get(self):
        return {'hello': 'world'}

api.add_resource(HelloWorld, '/')

if __name__ == '__main__':
    app.run(debug=True)

0

你可能也想要查看Parse。它们目前是免费使用的,并为你的移动应用程序提供了一个漂亮的 REST API

然而,正如 @iksnar 指出的那样,你不需要编写任何 Python 或后端代码。如果你需要在自己的服务器上运行 Python 后端,我强烈推荐 TastyPie,特别是如果你已经在使用 Django 和 Django ORM。


事实上,这将更容易,因为他们有iOS的本地SDK。您甚至不需要知道如何使用REST API和处理JSON编码/解码等。您只需使用本地对象并将其保存到平台即可。 - jimothy
这个主题是特定于Python框架的。Parse不支持使用Python。事实上,如果您想要除CRUD函数之外的任何服务器端逻辑,您将需要用Java编写。 - iksnae
1
Parse现在也已经停止了。Facebook将其关闭了。 - Praxiteles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接