Возможно ли $ .post внутри $ .get в jquery (Flask + Python) - PullRequest
0 голосов
/ 26 марта 2020

Я относительно новичок в Flask в Python. Поэтому, пожалуйста, потерпите меня, если мой вопрос звучит глупо.

У меня есть функция GET, как показано ниже:

@app.route('/transactions', methods=['GET','POST'])
def get_transactions():
    ...

У меня есть текстовое поле (#transaction_year) на html и мне нужно, чтобы этот ввод использовался в этой функции (как $ .post). Вышеуказанная функция вызывается следующим образом: JQuery


$('#get-transactions-btn').on('click', function (e) {
        $.get('/transactions', function (data) {
          ....
});
});

Проблема заключается в том, что при нажатии кнопки (get-Transactions-btn) функция (get_transactions) запускается как GET и получает данные. Можно ли сделать что-то подобное ниже, чтобы запустить $ .post до того, как $ .get будет выполнен, и все еще иметь значение из текстового поля ввода (#transaction_year)?


$('#get-transactions-btn').on('click', function (e) {
        $.get('/transactions', function (data) {
          var transaction_year = $("#transaction_year").val();
          $.post("/transactions", { transaction_year: transaction_year })
          ....
});
});

, чтобы я мог использовать его в моя функция как ниже?

@app.route('/transactions', methods=['GET','POST'])
def get_transactions():
    # Store the value from post here
    transaction_year = float(request.form['transaction_year'])
    ...

Спасибо и ценим любые отзывы.

1 Ответ

0 голосов
/ 26 марта 2020

Мне удалось обойти это. Я создал отдельную функцию для хранения значения $ .post в глобальной переменной input_year.

input_year = 1
@app.route('/transactions_input', methods=['POST'])
def get_transactions_input():
    global input_year
    transaction_year = float(request.form['transaction_year'])

    input_year = transaction_year

    return 'Done'

Обновлено JQuery до следующих значений:

 $('#get-transactions-btn').on('click', function (e) {
        var transaction_year = $("#transaction_year").val();
        $.post("/transactions_input", { transaction_year: transaction_year }) 
        $.get('/transactions', function (data) {
        ....
});
});

Глобальная переменная устанавливает значение поля ввода и это можно использовать внутри /transactions.

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