интерактивный параметр в функции html go до python с использованием flask - PullRequest
0 голосов
/ 07 апреля 2020

Мне нужна помощь в среде python flask У меня есть страница html, на которой я получаю список IP-адресов из базы данных SQL и IP-адреса в списке кликабельны. что мне нужно, так это возможность нажимать на какой-либо IP-адрес и иметь возможность использовать этот IP-адрес в другой функции в FLASK.

части кода моего примера кода: HTML

<!DOCTYPE html>
<html>
 {% extends "base.html" %}

{% block content %}
<body>
    <script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
    <script>
        function goPython(){
            $.ajax({
              url: "/clicked",
             context: document.body
            }).done(function() {
             alert('finished python script');;
            });
        }
    </script>



{% for Devices in ip %}

<form action = "http://192.168.1.1:8081/clicked" method = "post">
            <ul id="Devicesid">
        <li class="label even-row">
             <a onclick="goPython()" value="btnSend"><button type="button" name="btnSend">{{ Devices.ip }}</button></</a>

            </li>
</ul>

</form>
</body>
{% endfor %}


</html>
{% endblock %}

и часть из python main.py кода:

    @main.route('/clicked',methods = ['POST', 'GET'])
def clicked():
    while True:
        IP = request.form['btnSend']
        URL = 'https://' + IP

        credentials = {'username': 'apiuser', 'secretkey': 'f00D$'}
        session = requests.session()
        ###and so on......

, как вы можете видеть в части HTML iam, используя FOR l oop и получая IP-адреса из моей базы данных, Теперь я пытаюсь получить возможность нажимать на IP-адрес и использовать его в другой функции python FLASK для подключения к этому практическому устройству.

как я могу сделать это просто и правильно? как я понимаю, что для того, чтобы заставить его работать, мне нужно использовать AJAX или JQuery ...

пожалуйста, помогите

1 Ответ

0 голосов
/ 07 апреля 2020

Попробуйте это ниже в своем коде JS / HTML:

    <!DOCTYPE html>
    <html>
     {% extends "base.html" %}

    {% block content %}
    <body>

        <script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
        <script>
            function goPython(currentIp){
                $.ajax({
                  type: "POST",
                  url: "http://192.168.1.1:8081/clicked",
                  data: {'current_ip' :currentIp},
                  success: success,
                  dataType: dataType
               });
            }
        </script>

    <form>
        <ul id="Devicesid">
        {% for Devices in ip %}
            <li class="label even-row">
                 <a value="btnSend"><button onclick="goPython(Devices.ip)" 
 type="button" name="btnSend">{{ Devices.ip }}</button></</a>
            </li>
        {% endfor %}

        </ul>
    </form>
    </body>
    {% endblock %}

    </html>

And in your Flask code,  do this :

    @main.route('/clicked',methods = ['POST', 'GET'])
    def clicked():
            IP = request.json.get('current_ip', '')
            URL = 'https://' + IP

            credentials = {'username': 'apiuser', 'secretkey': 'f00D$'}
            session = requests.session()
            ###and so on......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...