2016-11-01 2 views
0

Ok, ich bin ziemlich neu in Django und ich baute eine sehr einfache App. Der Benutzer gibt den Ort in ein Textfeld ein, ich hole die Koordinaten für diesen Ort von Google Maps und drucke sie auf der nächsten Seite aus. Bisher konnte ich die Koordinaten in einer JSON-Datei zusammen mit vielen anderen Informationen abrufen. Ich habe auch die Breiten- und Längengrade erfolgreich isoliert und in getrennten Variablen gespeichert. Ich kann sie aber nicht zum Ausdrucken bringen. Es wird nur ein Wert gedruckt. Könnte mir jemand dabei helfen? Dies ist, was ich bisher geschrieben: Mein views.py:Wie gebe ich zwei Variablen in einer Django HttpResponse zurück?

from django.shortcuts import render 
from django.http import HttpResponse, HttpResponseRedirect 
import requests 
import json 
# Create your views here. 


def homepage(request): 
    if request.method == 'GET': 
     return render(request, 'geog/homepage.html') 

    if request.method == 'POST': 
     string = request.POST['location'] 
     maps_url = "http://maps.googleapis.com/maps/api/geocode/json?address="+string 
     json_string = requests.get(maps_url).content 
     json_dict = json.loads(json_string) 
     lat = json_dict['results'][0]['geometry']['location']['lat'] 
     lng = json_dict['results'][0]['geometry']['location']['lng'] 
     return HttpResponse(lat, lng) #It only prints lat, does not print lng 

Meine Html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>geog</title> 
</head> 
<body> 
<form action="" method="POST"> {% csrf_token %} 
    <input type="text" name='location'/> 
    <button type="submit">submit</button> 
</form> 
</body> 
</html> 
+0

Erstellen Sie eine Zeichenfolge mit beiden Werten sein und setzen in 'HttpResponse()' oder verwenden 'render()' mit einer anderen HTML-Datei und 'lat, lng' als Argumente (und mit' {{lat}} ', {{lng}}' in html) – furas

+0

Wenn ich habe Um Rendern zu verwenden, muss ich eine neue Vorlage und neue URLs erstellen. Die Saiten-Idee klingt besser. – DeA

Antwort

0

wäre es

# this will return a json object with a lat and lng property which have the desired values 
return HttpResponse(json.dumps({"lat":lat, "lng":lng}), content_type="application/json") 
+0

In diesem Fall verwenden Sie besser django.http.JsonResponse - https://docs.djangoproject.com/en/1.10/ref/request-response/#id4 –

Verwandte Themen