Я очень новичок в jinja2 и использовании шаблонов в целом, поэтому мне было интересно, есть ли простой способ загрузить внешний javascript , Я думал об использовании:
{% block javascript %}
<script src="myscript.js"></script>
{% endblock %}
Но я не могу не спросить:
Есть ли способ загрузки этого скрипта непосредственно из директивы шаблона?
У вас есть два варианта выбора - первый - это то, как вы это сделали - просто добавьте соответствующую разметку в шаблон (или блок, если вы хотите иметь возможность переопределить ее в шаблонах, расширяющих ваш первый шаблон).
Второй способ - использовать функцию Jinja2 include
:
{% block javascript %}
<script type="text/javascript">
{% include "myscript.js" %}
</script>
<!-- The contents of myscript.js will be loaded inside the script tag -->
{% endblock %}
Преимущество использования include
заключается в том, что Jinja2 обработает ваш javascript перед его включением - это означает, что вы можете переменные в вашем javascript, которые меняются в зависимости от состояния вашей программы.
Недостаток использования include
таким же образом тот же - ваш файл .js
будет запущен через Jinja2 перед отправкой - если вы не используете динамическое содержимое. вы просто будете обрабатывать файл без надобности для каждого запроса - и если вы используете библиотеку шаблонов javascript с синтаксисом Jinja2, тогда вероятны проблемы.