2010-08-18 23 views
19

È possibile utilizzare webpy per servire JSON? Ho creato il mio sito Web e ho bisogno di fornire alcune informazioni in JSON per interagire con Javascript su alcune pagine.webpy: Come servire JSON

Cerco di cercare le risposte nella documentazione, ma non riesco a trovare nulla.

Grazie, Giovanni

risposta

56

io non penso che avrei dovuto fare qualsiasi cosa eccessivamente " speciale "per web.py per servire 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

perfetto! Sapevo che era più semplice di quanto immaginassi! molte grazie! –

+0

Se si desidera eseguire il rendering di HTML * OR * JSON a seconda del client, ho inserito alcuni esempi di codice in una risposta a questa domanda. –

+0

@Sean: mi dispiace non è questo lo scopo di questa domanda: non stavo cercando una buona implementazione, ma un modo semplice per farlo. –

-6

E 'certamente possibile servire JSON da webpy, ma se tu e la scelta di un quadro, vorrei guardare la luce delle stelle e la mia crepuscolare forchetta (per la documentazione).

Ha un wrapper JSON per il fissaggio delle intestazioni http per la risposta JSON.

utilizza le librerie json o simplejson per json che gestisce le conversioni da e verso altri oggetti.

Lo sto usando proprio ora ed è fantastico.

https://bitbucket.org/marchon/twilight

in esso troverete un esempio chiamato ShowMeTheJson.py

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

è fantastico, ma non riesco a migrare tutto il mio sito web. hai qualche puntatore per webpy? –

+2

Dire alle persone di usare la "tua" struttura non è davvero una risposta alla domanda. –