Как вызвать функцию Python и передать аргументы при нажатии кнопки HTML? - PullRequest
0 голосов
/ 09 марта 2019

Я отобразил данные из базы данных

{% extends "layout.html" %}
{% block content %}
    <article class="media content-section">
            <div class="table-responsive">          
                <div class="table table-striped">
                    <table>
                        <thead>
                            <tr>
                                <th>Name</th>
                                <th>Phone Number</th>
                                <th> Send SMS </th>
                            </tr>
                        </thead>
                        {% for detail in details%}
                        <tbody>
                            <tr>
                                <th>{{ detail.username }}</th>
                                <th>{{ detail.phonenumber }}</th>
                                <th><button type="button" class="btn btn-success" onclick="'{{ url_for('sendsms', phonenumber = detail.phonenumber)}}'">Send Request</button></th>
                        </tr>
                    </tbody>
                {% endfor %}
            </table>
        </div>
    </article>
{% endblock content %}

КАК ВЫЗВАТЬ ФУНКЦИЮ И ПРОЙДИТЕ НОМЕР ТЕЛЕФОНА, КОГДА КНОПКА НАЖИМАЕТСЯ?

Когда я нажал эту кнопку, должна быть вызвана функция sendms, и номер телефона должен быть передан этой функции.

Мой маршрут

def sendsms(phonenumber):
        account_sid = '************************'
        auth_token = '*************************'
        client = Client(account_sid, auth_token)

        message = client.messages.create(
                                  from_= current_user.username,
                                  body='i need immediately'
                                  to= phonenumber)

        print(message.sid)

1 Ответ

1 голос
/ 09 марта 2019

Конечно, пошли. Сначала добавим элементы формы в ваш HTML-код.

{% for detail in details%}

#let's make a bunch of forms for every detail so you can send separate data for every request.

    <form action="{{ url_for('sendsms') }}" method="post">
        <tbody>
           <tr>
          <th><input type="text" name="username" value={{ detail.username }} required></th>
          <th><input type="text" name="phonenumber" value={{ detail.phonenumber }} required></th>
          <th><input type="submit" name="button" class="btn btn-success" value="Send Request"></a></th>
          </tr>
        </tbody>
    </form>
        {% endfor %}

После этого давайте сделаем POST-запросы нашего бэкэнда.

#Let's make sure that our route handles POST requests so add POST method to route:
@app.route('/sendsms', methods=['POST'])
def sendsms():
    account_sid = '************************'
    auth_token = '*************************'
    client = Client(account_sid, auth_token)

    #You can access values you sent in form using request.form data:
    phonenumber = request.form['phonenumber']
    username = request.form['username']

    message = client.messages.create(
                              from_= username,
                              body='i need immediately'
                              to= phonenumber)

    print(message.sid)

P.S. Этот код, вероятно, должен работать, но так как я не могу его проверить - это, по крайней мере, даст вам подсказку. Удачи!

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