Функция render_template_string
Функция render_template_string применяется для рендеринга
шаблона, который хранится не в отдельном файле, а прямо в виде
строки Python. Первым параметром передаётся сама строка шаблона,
а далее - именованные переменные, доступные внутри шаблона.
Это удобно для небольших шаблонов, которые не хочется выносить
в отдельный файл.
Синтаксис
render_template_string(source, **context)
Пример
Давайте отрендерим простой шаблон из строки:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/')
def index():
return render_template_string('<p>{{ text }}</p>', text='hello')
Результат выполнения кода:
<p>hello</p>
Пример
Давайте передадим в шаблон список и выведем его через цикл:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/')
def index():
arr = ['a', 'b', 'c', 'd', 'e']
tmpl = '''
<ul>
{% for elem in arr %}
<li>{{ elem }}</li>
{% endfor %}
</ul>
'''
return render_template_string(tmpl, arr=arr)
Результат выполнения кода:
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
</ul>
Пример
Давайте используем условие внутри строкового шаблона:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/user/<name>')
def user(name):
tmpl = '{% if name %}hello, {{ name }}{% else %}user{% endif %}'
return render_template_string(tmpl, name=name)
Результат выполнения кода для адреса /user/abcde:
hello, abcde
Смотрите также
-
функцию
render_template,
которая рендерит шаблон из файла -
функцию
stream_template,
которая стримит шаблон из файла -
функцию
stream_template_string,
которая стримит шаблон из строки -
тег
for,
который перебирает элементы в шаблоне