DOM банально не работает. В чем дело?
Flask тут вообще не при чём. Ваш скрипт начинает выполняться сразу, как только загрузится, а загружается он раньше, чем страница. Либо перенесите тег <script> перед закрывающим тегом </body>, либо весь код внутрь обработчика DOMContentLoaded.
Как и написали выше, все дело в том, что скрипт начинает выполнение до полной загрузки страницы. В дополнение скажу, что ещё можно использовать defer или type="module"