Как передать переменную Javascript через POST для использования в Flask? - PullRequest
0 голосов
/ 01 марта 2020

Итак, у меня есть переменная JS, которая создается после нажатия кнопки, и мне нужно передать ее в мое приложение для обработки в flask. В настоящее время я пытаюсь сделать это с помощью строк запроса, но я не совсем уверен, что я делаю.

В html у меня есть форма, настроенная так:

<form action="/deleteBook" method="POST" onsubmit="deleteBook()">
                <input type="submit" value="Delete" />
 </form>

, которая вызывает эту функцию для применения строки запроса:

function deleteBook() {
        var existingUrl = window.location.href;
        window.location.href = existingUrl + '?itemID=' + itemToRemove;
    };

, а затем я хочу обработать эту переменную через flask:

@app.route('/deleteBook', methods=["POST"])
def deleteBook():

if(request.method == "POST"):

    itemID = request.args.get('itemID')

На мой взгляд, код должен обнаруживать отправку формы (в основном одно нажатие кнопки), вызывать deleteBook (), который затем должен добавить строку запроса к URL который затем может быть обработан в flask.

Я знаю, что мне не хватает базовых c знаний о html / js / processing data, поэтому я не совсем уверен, где go отсюда. Должен ли я использовать PHP для обработки запроса каким-либо образом? Или я не должен использовать форму вообще? Или, может быть, в flask есть более простой способ получить данные без использования POST? Я не уверен, поэтому любые предложения приветствуются, спасибо!

1 Ответ

1 голос
/ 01 марта 2020

Ну, я, например, нахожу твой стиль для такого уникального вопроса, поэтому постараюсь объяснить свою идею ответа. Во-первых, у меня будет просто форма, вызывающая функцию. Во-вторых, у меня будет вызов функции «XMLHttpRequest» с конфигурацией «POST». HTML

<form onsubmit="deleteBook()">
  <input type="submit" value="Delete " />
</form>

JavaScript

function deleteBook () {
  var xhr = new XMLHttpRequest();
  xhr.open('POST', existingUrl + '?itemID=' + itemToRemove, true); //The second argument is the url you wish to 'POST' to
  xhr.send(); //if you want to do something if your flask returns something, 'xhd.onload = function () {}'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...