2010-08-18 10 views
19

¿Es posible utilizar webpy para servir JSON? Creé mi sitio web y necesito proporcionar información en JSON para interactuar con el Javascript en algunas páginas.webpy: Cómo servir JSON

Intento buscar las respuestas en la documentación, pero no consigo encontrar nada.

Gracias, Giovanni

Respuesta

56

yo no creo que tendría que hacer cualquier cosa excesivamente " especial "para web.py para servir 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) 
+0

¡perfecto! ¡Sabía que era más simple de lo que imaginaba! ¡muchas gracias! –

+0

Si desea representar HTML * OR * JSON según el cliente, he publicado algunos ejemplos de código en una respuesta a esta pregunta. –

+0

@Sean: lo siento, este no es el propósito de esta pregunta: no estaba buscando una buena implementación, sino una forma sencilla de hacerlo. –

-6

Es ciertamente posible para servir de JSON webpy, pero si usted y la elección de un marco, me gustaría ver la luz estelar y mi crepúsculo tenedor (para la documentación).

Tiene un contenedor JSON para fijar los encabezados http para su respuesta json.

usa las bibliotecas json o simplejson para gestionar las conversiones hacia y desde otros objetos.

Lo estoy usando ahora mismo y es genial.

https://bitbucket.org/marchon/twilight

en ella se encuentra un ejemplo llamado ShowMeTheJson.py

que utiliza JSON sencillo

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()) 
+0

es genial, pero no puedo migrar todo mi sitio web. ¿tiene algún puntero para webpy? –

+2

Decirle a la gente que use "su" marco de trabajo no es realmente una respuesta a la pregunta. –

Cuestiones relacionadas