Отправка переменной Flask из HTML обратно во Flask с помощью url_for () - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь создать небольшую доску вакансий, каждая карточка работ динамически вставляется из колбы из списка (на данный момент это будет база данных SQL позже)

Screenshot

Когда пользователь нажимает кнопку View Task, я хочу, чтобы он перешел на другую страницу, где более подробно отображается задание / задание.

То, что я хочу прикрепить к этой кнопке, этоидентификатор задания / задачи.

Вот как бы я хотел / ожидал, что кнопка будет функционировать

{% for task in available_tasks %}
<div>
   <a href="{{ url_for('view_task', task_id={{ task['id'] }}) }}">View Task</a>
</div>
{% endfor %}

Затем ее можно вставить в маршрут, который будет принимать идентификатор в качестве аргумента иполучить полную информацию о задании / задании.

app.route('/view_task/<task_id>')
def view_task(task_id):
   task_data = task_database[taskid]
   return render_template('detailed_view.html', task_info=task_data)

Моя проблема в том, что href="url_for('view_task', task_id={{ task['id'] }})" не работает, есть ли способ сделать это?

1 Ответ

2 голосов
/ 06 апреля 2019

Вы сгенерировали вывод href="url_for('view_task', task_id=<some id>)", поэтому буквенный текст url_for(..) находится в HTML, сгенерированном и доставленном в ваш браузер, и механизмы HTML не распознают эту строку как допустимый URL для чего-либо.

Вам нужно поставить функцию url_for() в скобках {{ ... }}, а не только значение идентификатора задачи:

href="{{ url_for('view_task', task_id=task['id']) }}"

Только тогда url_for() фактически рассматривается как выражение для выполнения Jinja2, после чего HTML-код будет содержать строку href="http://localhost:5000/view_task/<some id>".

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