2011-04-24 69 views
7

对于Google App Engine(GAE)上的WSGI,我很疯狂。WSGI - 将内容类型设置为JSON

如何将内容类型设置为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中开发时,我正在使用restlets。有比WSGI更好的框架吗?我使用WSGI的唯一原因是因为这是他们在App Engine教程中使用的。

谢谢!

+2

你是“疯狂的绿色”?我听说这并不容易。 – 2011-04-25 03:33:18

+0

嘿,尼克,所以我试图给你写一封感谢信,而不是一段时间之后我回答你的问题之一,但对于我的生活,我找不到你的电子邮件地址 – 2011-04-27 17:44:35

回答

14

您可以设置适当的的Content-Type像这样的东西:

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

WSGI不是一个框架,而是一个规范;您目前使用的框架是webapp框架。

Python方面没有什么复杂和特殊的Restlet,然而,通过webapp,你可以通过返回JSON/XML数据的正则表达式来创建RESTful request handlers,就像你的处理程序一样。

+0

很酷,谢谢你回答我关于REST的问题 – 2011-04-25 00:40:31

2

像任何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)) 

这里更多:Redirects, Headers and Status Codes

1

是否有一个更好的框架是用比WSGI?

看金字塔(以前命名的塔,如果你看到提及)。听起来你的情况会比django更好。

相关问题