私はかなり新しいdjangoだし、私は非常に単純なアプリケーションを構築していた。ユーザーはテキストボックスに場所を入力し、Googleマップからその場所の座標を取り出して次のページに印刷します。これまではJSONファイルで他の多くの情報とともに座標を取得することができました。私は緯度と経度を正常に分離し、それらを別々の変数に格納しました。私はそれらを印刷することができません。 1つの値だけが印刷されます。誰かが私にこれを手伝ってもらえますか?これは私がこれまでに書かれたものです: 私のviews.py:1つのDjango HttpResponseで2つの変数を返すにはどうすればよいですか?
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
は私の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>
値とプットの両方で1つの文字列を作成することでしょう'httpResponse()'で '' render() 'を、また別のhtmlファイルと' 'lat、lng''を引数として(' h {{lat}} '' {{lng}} ') – furas
レンダリングを使用するには、新しいテンプレートと新しいURLを作成する必要があります。弦のアイデアはよりよく聞こえる – DeA