как потреблять kwargs от flask в jinja - PullRequest
0 голосов
/ 25 апреля 2020

Из файла jinja html я хочу использовать и распечатать kwargs, переданный из python / flask. Я передаю переменные в flask render_template, однако не могу понять, как получить kwargs от jinja. Это минимальный flask пример:

from flask import Flask, render_template, request

app = Flask(__name__)    
@app.route("/foo", methods=['POST'])
def foo():
    return render_template("mypage.html", alpha=request.form.get('alpha'),
            beta=request.form.get('beta'))

Это файл jinja html mypage.html:

<html><body><ul>
    {% for k, v in kwargs.items() %}
        <li>{{ k }}{{ v }}</li>
    {% endfor %}
</ul></body></html>

Это ошибка, когда я пытаюсь опубликовать на страница:

File "/usr/lib/python3.8/site-packages/jinja2/environment.py", line 430, in getattr
return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'kwargs' is undefined

Очень жаль, если это дубликат, но я нигде не могу найти этот вопрос / ответ.

1 Ответ

0 голосов
/ 27 апреля 2020

ваша программа должна соответствовать kwargs шаблона:

from flask import Flask, render_template, request

app = Flask(__name__)    
@app.route("/foo", methods=['POST'])
def foo():
    kwargs = {'alpha': request.form.get('alpha'),
              'beta': request.form.get('beta'),
             }
    return render_template("mypage.html", kwargs=kwargs)
...