Как получить возвращаемое значение функции и использовать его в html-шаблоне, flask
У меня есть html файл index.html и python файл, использующий flask, я хочу вызвать функцию из python файла и использовать возвращаемое значение в атрибуте в html т.е.
<div style="display: {{ some_builtin_function('drowsiness_alert') }};" >
<h1>Hide this</h1>
</div>
python file:
@app.route('/drowsiness_alert')
def drowsiness_alert():
return "none"
Я использую url_for для возврата url из flask, поэтому мне интересно, есть ли встроенный метод для получения возвращаемого значения функции, я искал в интернете некоторое время, но информация слишком перегружена, я новичок в flask. пример кода url_for:
<img src="{{ url_for('video_feed') }}" height="80%">
Если вы хотите определить функцию, которая будет вызываться из шаблона jinja2, необходимо определить ее в файле python и добавить в качестве глобальной переменной окружения jinja. Затем вы сможете вызывать их с соответствующим именем.
В моем примере элемент отображается, если текущее время находится между 12 и 16 часами, в противном случае он скрыт.
from flask import (
Flask,
render_template
)
from datetime import datetime, time
# Define the function.
def drowsiness_alert():
t1,t2 = time(12,0,0),time(16,0,0)
return 'block' if t1 <= datetime.now().time() <= t2 else 'none'
app = Flask(__name__)
# Add the function by name to the jinja environment.
app.jinja_env.globals.update(drowsiness_alert=drowsiness_alert)
@app.route('/')
def index():
return render_template('index.html')
<!-- Calling the function. -->
<div style="display: {{ drowsiness_alert() }}">
<p>Your content here.</p>
</div>