У меня есть POST-запрос с главной страницы, где пользователь отправляет название компании в HTML-форму. Я также использую Flask Blueprint под названием company_bp
.
<form action="{{ url_for('company_bp.company') }}" class="search_form" method="post">
<input type="text" id="search_input" placeholder="Name" name="company_name" autocomplete="off">
<input type="submit" value="research">
<ul id="search_list">
</ul>
</form>
Когда я получаю company_name
из формы HTML, я хотел бы динамически построить маршрут для этой конкретной компании, используя ее идентификатор в базе данных, а не его имя, которое я получил из формы.
@company_bp.route('/<company_id>',methods=['POST'])
def company(company_id):
if request.method=='POST':
Я получаю сообщение об ошибке, которое говорит о том, что мне нужно указать company_id
в форме HTML как:
{{ url_for('company_bp.company', company_id=company_id) }}
Я не понимаю, где и как назначить идентификатор компании для переменной company_id
. У меня есть идентификатор и название компании из запроса БД через javascript, но не ясно, как поместить этот идентификатор в правильную переменную.
===== ОБНОВЛЕНО
Я обновил html-файл, чтобы изменить форму, добавив строку с именем = "company_id":
<form action="{{ url_for('company_bp.company', company_id=company_id) }}" class="search_form" id="search_form" method="post">
<input type="text" id="search_input" placeholder="Name" name="company_name" autocomplete="off">
<input type="hidden" name="company_id" id="co_id">
<input type="submit" value="research">
</form>
Когда я проверяю html-форму, я вижу идентификатор - 1456. Однако, когда я отправляю форму, я получаю ошибку The requested URL was not found on the server
, и проблема в том, что POST
не создает правильный URL, который должен быть company/1456
, а только сборок company/
часть.