Есть ли способ вручную установить переменную формы в jinja2 - PullRequest
0 голосов
/ 11 апреля 2020

Добрый вечер всем! У меня есть следующий код, который не работает.


    <form action="{{ url_for('book') }}" method="post">
        <div>
            <input name="name" placeholder="Enter Your Name" type="text">
        </div>
        <div>
            {% set flight_id = 3 %}
        </div>
        <button>Submit</button>
    </form>

Поэтому я хочу установить переменную "flight_id" без какого-либо ввода. Возможно ли это сделать? Я разрабатываю приложение для авиакомпаний, у меня есть страница специально для бронирования, но у меня также есть страница, где у меня есть информация о конкретном рейсе. Кроме того, я хочу предоставить регистрацию на конкретный рейс с этой страницы, не выбирая рейс (например, рейс с flight_id = 3).
Flask код:

@app.route("/book", methods=["POST"])
def book():
    name = request.form.get("name")
    try:
        flight_id = int(request.form.get("flight_id"))
    except ValueError:
        return render_template("error.html", message="Wrong flight id")

    db.execute("INSERT INTO passengers(name, flight_id) VALUES(:name, :flight_id)", {"name":name, "flight_id":flight_id})
    db.commit()

1 Ответ

1 голос
/ 11 апреля 2020

Если я правильно вас понимаю, <input type="hidden"> может вам помочь.

<input type="hidden" name="flight_id" value="3">

Поместите этот код в форму, и поле flight_id будет передано на сервер при отправке формы.

...