将变量从python传递到javascrip

2024-05-08 06:55:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用googleappengine开发一个网页。它涉及到html、python、javascript和Ajax。在

工作流程如下:

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

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

将调用此函数:

^{pr2}$

我需要的是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']

所以我需要将python代码中的“latitud”和“longitud”发送到javascript,这样latitud将是RESULT-A和longitud RESULT-B

怎么做呢?在

谢谢。在


Tags: 函数selfurlgetaddresshtmlservicejs
1条回答
网友
1楼 · 发布于 2024-05-08 06:55:24

已解决:

我终于这样做了:

(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代码:

^{pr2}$

我对此非常疯狂,因为我忘了把webapp2.RequestHandler放在python类的头中。

相关问题 更多 >