Ответ нашёлся в документации. Можно использовать
процессоры контекста.
Функции и переменные переданные через процессор контекста становятся доступны в шаблоне.
В коде ниже переменная balance передаётся через функцию get_balance(). В шаблоне нет необходимости что-то менять. Обрати внимание, что и переменные и функции возвращаются в виде словаря (dict()).
app.py:
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.context_processor
def get_balance():
balance = '10'
return dict(balance=balance)
@app.route('/')
def index():
return render_template('page.html')
if __name__ == '__main__':
app.run()