gpt4 book ai didi

javascript - 将变量从 python 传递到 javascript

转载 作者:行者123 更新时间:2023-12-03 08:04:54 25 4
gpt4 key购买 nike

我正在使用 Google App Engine 制作网页。它涉及html、python、javascript和Ajax。

工作流程如下:

当有人在 html 框中引入一个值时,它会调用 JavaScript 函数:

 INPUT type="text" id="busca" name="busca" onblur="SacarMapa()"

这将调用这个函数:

  function SacarMapa()
{
var lugar=document.getElementById("busca").value;
$.ajax("/mapa",
{ "type": "get",
"data": {busca:lugar},
// usualmente post o get
"success": function(result) {
initMap(RESULT-A, RESULT-B);
},
"error": function(result) {
console.error("Se ha producido un error: ", result);},
"async": true,})};

我需要的是 RESULT-A 和 RESULT-B。这将来自使用 python 的服务器端:

class MapHandler(SessionModule.BaseSessionHandler):
def get(self):
#Obtencion de datos
serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?'
address=self.request.get('busca')
self.response.out.write("Busca es "+address)
url = serviceurl + urllib.urlencode({'address': address})
uh = urllib.urlopen(url)
data = uh.read()
js = json.loads(str(data))
resultado = js['status']
if not resultado == "ZERO_RESULTS":
location = js['results'][0]['formatted_address']
latitud = js['results'][0]['geometry']['location']['lat']
longitud = js['results'][0]['geometry']['location']['lng']

所以我需要将“latitud”和“longitud”从python代码发送到javascript,以便纬度为RESULT-A,经度为RESULT-B

有什么方法可以做到这一点?

谢谢。

最佳答案

已解决:

我最终是这样做的:

(Python/服务器端)

class MapHandler(webapp2.RequestHandler):
def get(self):
#Obtencion de datos
serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?'
address=self.request.get('busca')
url = serviceurl + urllib.urlencode({'address': address})
uh = urllib.urlopen(url)
data = uh.read()
js = json.loads(str(data))
try:
location = js['results'][0]['formatted_address']
latitud = js['results'][0]['geometry']['location']['lat']
longitud = js['results'][0]['geometry']['location']['lng']
self.response.headers['Content-Type'] = 'application/json'
self.response.out.write (json.dumps({"exito": 1, "lat": latitud, "long": longitud}))

except Exception as e:
self.response.out.write (json.dumps({"exito":0}))

Javascript:

function SacarMapa()
{
var lugar=document.getElementById("busca").value;
alert("Buscaremos "+lugar);
debugger;
$.ajax("/mapa",
{ "type": "get",
"data": {busca:lugar},
"dataType": "json",
"success": function(datos) {
if (datos['exito'] == "1")
{
initMap(datos['lat'], datos['long']);
}
},

"error": function(datos) {
debugger;
console.error("Se ha producido un error: ", datos);},
"async": true,})};

我对此感到非常疯狂,因为我忘记将 webapp2.RequestHandler 放在 python 类的 header 中。

关于javascript - 将变量从 python 传递到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34425673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com