Какая среда Python для веб-службы REST/JSON без внешнего интерфейса?

Мне нужно создать веб-службу Python REST/JSON для взаимодействия с приложением iOS. В сети не будет внешнего интерфейса.

Какой будет самый быстрый и легкий фреймворк для этого? Кривая обучения для реализации также считается?

Из исследования, которое я провел, Django-Tastypie или Djanjo-Piston кажутся лучшими вариантами, причем Tastypie выигрывает, потому что кодовая база активно поддерживается?


person Rick    schedule 30.10.2011    source источник
comment
возможный дубликат Рекомендации по фреймворку Python REST (веб-сервисы)?   -  person joragupra    schedule 06.02.2015


Ответы (6)


В целом, я думаю, вы найдете web2py одной из самых простых платформ для настройки, изучения и использования. . web2py позволяет очень легко генерировать JSON ( просто добавьте расширение .json), и теперь он включает новые функции для автоматического создания Веб-службы RESTful для доступа к моделям баз данных. В частности, ознакомьтесь с parse_as_rest и smart_query.

Если вам нужна помощь, спросите в списке рассылки.

person Anthony    schedule 30.10.2011

В Pycon Australia Ричард Джонс сравнил самые популярные легковесные веб-фреймворки. Bottle оказался на первом месте. Вот полная презентация.

person Raymond Hettinger    schedule 30.10.2011

Когда дело доходит до легкости, CherryPy находится на первом месте.

import cherrypy

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

cherrypy.quickstart(HelloWorld())
person Amber    schedule 30.10.2011
comment
Не говоря уже о @tools.json_in() и @tools.json_out() в последних версиях. - person fumanchu; 30.10.2011

На вашем месте я бы использовал 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()
person lc2817    schedule 30.10.2011

Взгляните на 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)
person user1823890    schedule 04.02.2015

Вы также можете проверить Parse. Их можно использовать бесплатно прямо сейчас, и они предоставят вам хороший REST API для ваших мобильных приложений.

Однако, как указывает @iksnar, вы ничего не пишете на Python или вообще ничего для серверной части. Если вам нужно, чтобы бэкэнд работал на Python на ваших собственных серверах, я большой поклонник TastyPie, если вы уже используете Django и Django ORM.

person Gourneau    schedule 30.11.2011
comment
На самом деле это будет даже проще, поскольку у них есть собственные SDK для iOS. Вам даже не нужно знать, как использовать REST API и обрабатывать кодирование/декодирование JSON и т. д. Вы просто работаете с собственными объектами и сохраняете их на платформе. - person jimothy; 30.11.2011
comment
эта тема относится к фреймворку Python. Parse не поддерживает использование Python. На самом деле, если вам нужна какая-либо серверная логика помимо функций CRUD, вам нужно будет писать на Java. - person iksnae; 21.01.2014
comment
Parse также больше не поддерживается. ФБ закрыл. - person Praxiteles; 06.05.2016