WSGI - Установите тип содержимого в JSON - PullRequest
7 голосов
/ 25 апреля 2011

Я без ума от WSGI в Google App Engine (GAE).

Как установить тип контента в JSON?Это то, что у меня есть:

class Instructions(webapp.RequestHandler):
    def get(self):
        response = {}
        response["message"] = "This is an instruction object"

        self.response.out.write(json.dumps(response))



application = webapp.WSGIApplication([('/instructions', Instructions)],
                                     debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

Кроме того, я создаю несколько служб RESTful, ничего сложного.Я использовал рестлеты, когда разрабатывал в JAVA.Есть ли лучшая среда для использования, чем WSGI?Единственная причина, по которой я использую WSGI - это то, что они использовали в учебнике по App Engine.

Спасибо!

Ответы [ 3 ]

14 голосов
/ 25 апреля 2011

Вы можете установить правильный Content-Type примерно так:

self.response.headers['Content-Type'] = "application/json"
self.response.out.write(json.dumps(response))

WSGI - это не основа, а спецификация; фреймворк, который вы используете в данный момент, - это webapp framework.

Нет ничего сложного и особенного, как Restlet на стороне Python; однако с помощью веб-приложения вы можете создавать обработчики запросов RESTful с помощью регулярных выражений, возвращающих данные JSON / XML, как это делает ваш обработчик.

2 голосов
/ 25 апреля 2011

Как и любой HTTP-ответ, вы можете добавлять или редактировать заголовки:

def get(self):
    response = {}
    response["message"] = "This is an instruction object"

    self.response.headers["Content-Type"] = "application/json"
    self.response.out.write(json.dumps(response))

Подробнее здесь: Перенаправления, заголовки и коды состояния

1 голос
/ 23 октября 2011

Есть ли лучший фреймворк для использования, чем WSGI?

Посмотрите на Пирамиду (ранее названные пилоны, если вы видите, что упоминалось). Похоже, в вашем случае было бы лучше против Джанго.

...