Ответ 1
Здесь у вас есть два варианта - первый способ, которым вы это сделали - просто добавьте соответствующую разметку в шаблон (или блок, если вы хотите иметь возможность переопределить ее в шаблонах, которые расширяют ваш первый шаблон.)
Второй способ - использовать функцию include
Jinja2:
{% 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, тогда проблема скорее всего.