Flask фреймворк использует GET вместо указания метода POST - PullRequest
2 голосов
/ 25 февраля 2020

Я пытаюсь добавить данные в словарь через форму, используя метод post. Но это не работает. Форма работает с методом get, но не с post. Я прочитал много похожих постов, но не мог понять, так что пост здесь Пожалуйста, помогите мне найти проблему и решить ее.

Python Код

@app.route('/add_card',methods=["GET","POST"])
def add_card():
    if request.method == "POST":
        card = {"question": request.form['question'],
                "answer": request.form['answer']}
        db.append(card)
        return redirect(url_for('card_view',index=len(db)-1))

    else:
        return render_template("add_card.html")

Код формы:

 <form methods=" POST">
        <p>
            Question:
            <input type="text" name="=question">
        </p>
        <p>
            Answer:
            <input type="text" name="'answer">
        </p>
        <button type="submit">
            Create
        </button>
    </form>

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

Заменить:

<form methods=" POST">

на:

<form method="POST">

У вас есть дополнительные s , поэтому для отправки формы используйте GET.

Кроме того, если в вашем приложении много форм, Flask -WTF может пригодиться.

2 голосов
/ 25 февраля 2020
<form action="{{ url_for('add_card') }}" method="post">
     <p>
        Question:
        <input type="text" name="question">
    </p>
    <p>
        Answer:
        <input type="text" name="answer">
    </p>
    <button type="submit">
        Create
    </button>
</form>

Использование <form method="POST"> Вместо <form methods="POST">.

Его лучшее использование url-binding https://flask.palletsprojects.com/en/1.1.x/quickstart/#url -строительство

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