【发布时间】:2018-01-04 16:19:23
【问题描述】:
我正在使用 Google App Engine 在网页上显示 Google 地图。
我想把数据库中的经纬度带入到地图上显示。为此,我需要将导入的纬度和经度传递给 HTML 中的 JavaScript。我尝试了几种方法,但它没有用。 (例如{{variable}} 没用。)
如何最好地调试或以其他方式继续此操作?
class Map(webapp2.RequestHandler):
db = connect_to_cloudsql()
cursor = db.cursor()
cursor.execute("""select latitude,longitude from User;""")
data=cursor.fetchone()
lat=data[0]
lng=data[1]
formstring = """
<!DOCTYPE html>
<html lang="ko-KR">
<head>
<meta charset="utf-8"/>
<meta name="google-site-verification" content="9EqLgIzCmwFo7XAcSe4sBNZ_t0gULadyeF9BCO0DY3k"/>
</head>
<body class>
<style>
#map {
width: 80%;
height: 400px;
background-color: grey;
}
</style>
<div style="position:relative;width:1080px;margin:0 auto;z-index:11">
<div class="container" role="main">
<div id="map"></div>
<br><br>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=mykey&callback=initMap">
</script>
<script>
function initMap() {
var uluru = {lat: {lat} , lng: {lng} };
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
</div>
</div>
</body>
</html>
"""
【问题讨论】:
-
你形成 html 代码的方式很糟糕,但如果是这样 - 打破 html 代码字符串,将 lat-lng 值附加到字符串并形成 html 代码。
-
不要在 Python 文件中编写 HTML。 GAE 支持 Jinja2,你应该使用它。
-
如果您仍然坚持以这种方式形成字符串,请确保将所有
{替换为{{和}替换为}},{lat}和 {lng除外},然后只需在formstring上拨打.format(lat=lat, lng=lng}。 -
"""{{lat:{0} lng:{1}}}""".format(lat, lng)
标签: javascript python html google-app-engine