Как передать значение из шаблона по клику - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь передать индекс обратно в python от пользователя по клику в шаблоне Flask. Я уже получаю информацию по тому же маршруту, на который пытаюсь передать индекс, но я не выяснил, как отправить его в POST. Я поместил значение индекса в <button>, который находится внутри <form>.

Вот мой шаблон

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello world!</title>
</head>
<body>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type=text/javascript>
            $(function() {
              $('a#test').bind('click', function() {
                $.getJSON('/download_file',
                    function(data) {
                  //do nothing
                });
                return false;
              });
            });
    </script>
    <div>
        <h1>messages list</h1>
        <div>
            <ol>
                {%for index, message in enumerate(messages)%}
                    <li>{{ index }}{{ message.date }}-{{message.name}}</li>
                    <form method="POST">
                    <input type="hidden" value="{{index}}" name="index" />
                        <a href="" id=test><button value="index" class='btn btn-default'>Download</button></a>
                    </form>
                {%endfor%}
            </ol>
        </div>
    </div>
</body>
</html>

и мой '/download_file' маршрут

@app.route('/download_file', methods=['POST'])
def save_doc():
    index = request.form.get('index')
    filepath = os.path.join(os.path.expanduser('~') + r'\Desktop', filename)
    messages_list[0].document.save(filepath)
    return 'yo'

1 Ответ

0 голосов
/ 09 февраля 2020

В вашей форме нет ничего, что действительно указывало бы значение индекса. Предполагается, что вы хотите отправить стандартную форму (вместо ajax):

Возможно, вы захотите добавить что-то вроде <input type="hidden" value="{{index}}" name="index" /> к вашей форме вместе с index = request.form.get('index') в вашем маршруте.

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