#python #flask #jinja2 #ovh
Вопрос:
В настоящее время я разрабатываю приложение с использованием Flask на сервере OVH. У меня есть две страницы: форма и страница результатов.
Вот приложение :
@application.route('/traitement', methods=['POST'])
@basic_auth.required
def traitement():
result = request.form
return render_template("traitement.html", **result)
А вот и шаблон :
{{ name }} {{ surname }}
На моем локальном сервере все работает хорошо.
Но в OVH jinja2 работает по-другому: мне нужно добавить [0] к имени и фамилии, чтобы получить значения, как если бы словарь был преобразован в таблицу :
{{ name[0] }} {{ surname[0] }}
Я посмотрел на версии пакетов, которые я использую: они идентичны. Однако я использую python 3.7 локально, тогда как python 3.5 используется OVH.
- Как вы думаете, управление версиями python является причиной, по которой jinja2 запрашивает [0] ?
- Кто-нибудь знает, как обновить python на OVH до 3.7 ? Я использую облачные веб-серверы.
- Если невозможно обновить python на OVH, как я могу продолжать использовать словари, а не таблицы на python 3.5 ?
Заранее спасибо.
Комментарии:
1. Я предполагаю, что проблема связана с вашей HTML-формой ? Вы также синхронизировали HTML-страницу ?
Ответ №1:
Итак, это странно, но копирование «результата» в другой словарь заставило его работать…
def traitement():
result = request.form
inputs = {}
for cle, valeur in result.items():
inputs[cle] = valeur
return render_template("traitement.html", **inputs)
Я действительно не понимаю, почему, но теперь это работает идеально !