Also versuche ich einen einfachen Aufruf mit jQuery. GetJSON zu meinem lokalen Web-Server mit Python/Django, um seine Anfragen zu bedienen. Die Adresse verwendet wird, ist:jQuery getJSON Ausgabe mit Python/Django
http://localhost:8000/api/0.1/tonight-mobile.json?callback=jsonp1290277462296
Ich versuche, eine einfache Web-Ansicht zu schreiben, die diese URL zugreifen können und ein JSON-Paket als das Ergebnis (Sorgen um tatsächliche Elementwerte/Layout später) zurück.
Hier ist mein einfacher Versuch nur Alarmierung/Rücksendung die Daten:
$.getJSON("http://localhost:8000/api/0.1/tonight-mobile.json&callback=?",
function(json){
alert(json);
<!--$.each(json.items, function(i,item){
});-->
});
ich in der Lage bin diese URL direkt zugreifen zu können, entweder auf http://localhost:8000/api/0.1/tonight-mobile.json oder http://localhost:8000/api/0.1/tonight-mobile.json&callback=jsonp1290277462296 und ein gültiges JSON-Paket zurück ... So ich nehme an, es in meinem Noob Script :)
Meine views.py Funktion, die diese Reaktion erzeugt sieht wie folgt aus:
def tonight_mobile(request):
callback = request.GET.get('callback=?', '')
def with_rank(rank, place):
return (rank > 0)
place_data = dict(
Places = [make_mobile_place_dict(request, p) for p in Place.objects.all()]
)
xml_bytes = json.dumps(place_data)
xml_bytes = callback + '(' + xml_bytes + ');'
return HttpResponse(xml_bytes, mimetype="application/json")
Mit entsprechender urls.py Konfiguration:
(r'^tonight-mobile.json','iphone_api.views.tonight_mobile'),
Ich bin immer noch ein wenig verwirrt darüber, wie Rückrufe zu verwenden, so vielleicht das ist, wo mein Problem liegt. Hinweis Ich kann direkt eine 'blah.json'-Datei aufrufen, die mir eine Antwort gibt, aber nicht über eine verkabelte URL. Könnte mir jemand eine Richtung geben?
S.Lott, danke für die Antwort. Aber Ihre Antwort scheint mir kein Ergebnis zu geben - nur ein Fehler in meiner Sicht, der besagt: 'QueryDict' Objekt ist nicht aufrufbar. – user546459
@ user546459: Ich habe eine Änderung vorgenommen. Du kannst "debuggen", weißt du. Sie versuchen verschiedene Dinge. Fügen Sie 'print' Anweisungen hinzu. Experiment. Es ist erlaubt, weißt du. –