【问题标题】:How to fetch data from html/templates如何从 html/模板中获取数据
【发布时间】:2015-11-24 12:04:29
【问题描述】:

我正在使用 html5 地理位置来获取每个用户的当前位置,然后将其存储到数据库中。 我不知道如何在不使用 html 中的表单或输入法的情况下获取当前位置,然后将其发布到服务器。

<form method="post" id="geo_form">
    <input type="hidden" id="lat" name="lat" value="">
    <input type="hidden" id="lon" name="lon" value="">
    <input type="submit" name="submit" value="Click">
</form>

<script>
    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
        }
    }

    function showPosition(position) {
        document.getElementById("lat").value = position.coords.latitude;
        document.getElementById("lon").value = position.coords.longitude;   
    }

    getLocation()

<script>

然后在数据库中,我可以使用 post 获取地理位置:

def post(self):
    lat = float(self.request.get("lat"))
    lon = float(self.request.get("lon"))

问题是我想让当前位置在每次用户刷新页面时更新。有什么办法吗?

我知道我可以使用 getDocumentbyId.submit() 但我想让这个页面成为用户可以根据他们的位置获取本地提要的主页。所以,如果我在这个 html 中使用 getDocumentbyId.submit() 它将进入无限循环。

【问题讨论】:

    标签: html google-app-engine jinja2 google-cloud-datastore


    【解决方案1】:

    在处理请求时,GAE 会根据客户端请求的 IP 地址自动插入包含经纬度的响应头 X-AppEngine-CityLatLong

    您可以使用以下内容访问标题:

    location = self.request.headers.get('X-AppEngine-CityLatLong')
    

    更多信息在这里:http://rominirani.com/2012/04/25/appengine-location-detection-update-x-appengine-country-and-more/

    【讨论】:

    • 它不适用于开发服务器(localhost),但在我阅读其他来源后,它仅适用于已部署的应用程序。感谢您告诉我有关 Google 标头的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多