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>
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
Wenn ich habe Um Rendern zu verwenden, muss ich eine neue Vorlage und neue URLs erstellen. Die Saiten-Idee klingt besser. – DeA