Использование JS Geolocation в Flask Web App (Python 3.6.6) - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю над веб-приложением во Flask, используя Heroku, и пытаюсь включить данные широты и долготы в приложение (я хочу взять текущий лат / лон пользователя из моего файла login.html и сравнить его спредварительно указан lat / lon в моем файле application.py).У меня написан JS-компонент кода, но я не уверен, что с ним делать - как мне взять данные геолокации из JS и использовать их во Flask?Кроме того, как я могу видеть текущий широту / долготу пользователя?

Любая помощь по этому вопросу очень, очень ценится.Слишком часто Flask просто заставляет меня чувствовать себя потерянным.

JS Код:

{% extends "layout.html" %}

{% block title %}
    Log In
{% endblock %}

{% block main %}
    <form action="/login" method="post">
        <div class="form-group">
            <input autocomplete="off" autofocus class="form-control" name="username" placeholder="Username" type="text"/>
        </div>
        <div class="form-group">
            <input class="form-control" name="password" placeholder="Password" type="password"/>
        </div>
        <button class="btn btn-primary" type="submit">Log In</button>
    </form>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <script type="text/javascript">// <![CDATA[
        //run this code when the page loads
        jQuery(document).ready(function(){  
            //call the getGeolocation function below
            getGeolocation();
        });  
        //determine if the user's browser has location services enabled. If not, show a message
        function getGeolocation() { 
            if(navigator.geolocation){
                //if location services are turned on, continue and call the getUserCoordinates function below
                 navigator.geolocation.getCurrentPosition(getUserCoodinates);  
            }else{
                alert('You must enable your device\'s location services in order to run this application.');
            }
        }  
        //function is passed a position object which contains the lat and long value
        function getUserCoodinates(position){  
            //set the application's text inputs LAT and LONG = to the user's lat and long position
            jQuery("#LAT").val(position.coords.latitude);
            jQuery("#LONG").val(position.coords.longitude);
        }
    // ]]></script>
{% endblock %}

Не уверен, нужно ли это включать, но вот application.py (в настоящее время используется библиотека геокодера,который, к сожалению, не работал должным образом [или вообще? не уверен]): https://github.com/jaincoder/Attendx/blob/v1/application.py

1 Ответ

0 голосов
/ 29 сентября 2018

Как насчет использования ajax?Вам может понадобиться функция AJAX в вашем JS.Я искал все связанные статьи на SO для вас, и я думаю, что вы можете применить это .Я проверил, что это работает.Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...