Вы можете сделать это с помощью обработчика контекста , который является эквивалентом «тега шаблона» Django.
Это можно использовать для передачи нескольких переменных всем шаблоны или передать функцию, которая затем может быть вызвана во всех шаблонах.
Сначала импортируйте необходимые модули и инициализируйте приложение:
from flask import Flask, url_for, render_template
from random import randrange
app = Flask(__name__)
Затем определите обработчик контекста:
@app.context_processor
def utility_processor():
def random_image():
number = randrange(10)
f = 'accueil_' + str(number) + '.png'
return url_for('static', filename=f)
return dict(rand_im=random_image)
Обратите внимание, что вы передали функцию random_image
, которую затем можно вызвать в шаблоне как rand_im
. Вместо того, чтобы помещать вызов url_for
в шаблон, вы сделали это в Python.
Таким образом, вы можете отобразить это следующим образом в любом шаблоне:
<img src="{{ rand_im() }}" width="100%" />