webpy:如何提供JSON

时间:2010-08-18 14:58:36

标签: python web.py

是否可以使用webpy来提供JSON? 我构建了自己的网站,我需要在JSON中提供一些信息,以便在某些页面上与Javascript进行交互。

我尝试在文档中寻找答案,但我找不到任何答案。

谢谢, 乔瓦尼

2 个答案:

答案 0 :(得分:60)

我不认为你必须为web.py提供过于“特殊”的服务JSON。

import web
import json

class index:
    def GET(self):
        pyDict = {'one':1,'two':2}
        web.header('Content-Type', 'application/json')
        return json.dumps(pyDict)

答案 1 :(得分:-6)

当然可以从webpy提供JSON,但是如果你选择一个框架,我会看星光和我的叉子(用于文档)。

它有一个JSON包装器,用于修复json响应的http标头。

它使用json或simplejson库为json处理与其他对象之间的转换。

我现在正在使用它,它很棒。

https://bitbucket.org/marchon/twilight

在其中您将找到一个名为ShowMeTheJson.py

的示例

使用简单的json

from starlight import *
from werkzeug.routing import Map
from werkzeug.routing import RuleFactory

import simplejson


class ShowMeTheResponses(App):

####################################################################
#
#   Sample URLS to Test Responses 
#
#   http://localhost:8080/                root
#
#   http://localhost:8080/json            return JSON Mime Type Doc  
#
###################################################################



   @default
   def hello(self):
       return 'Hello, world!'

   @dispatch('/')
   def index(self): 
       return 'Hello Root!'

   @dispatch('/html')
   def indexhtml(self): 
       return HTML('Hello HTML')

   @dispatch('/json')
   def indexjson(self):
       directions = {'N' : 'North', 'S' : 'South', 'E':'East', 'W' : 'West'}
       return JSON(simplejson.dumps(directions))         


if __name__ == '__main__':
    from werkzeug import run_simple
    run_simple('localhost', 8080, ShowMeTheResponses())