Как разрешить приложение flask, которое не может найти HTML-документ в папке templates, что приводит к внутренней ошибке разделения

#python #flask

#python #flask

Вопрос:

Это полная ошибка, которую мы получаем при запуске приложения flask в браузере.

«Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо в приложении ошибка. »

Я провел некоторое исследование и уже попытался связать папку с app = Flask(__name__, template_folder='/templates') назначением.

Вот мой каталог и журналы отладки. Любая информация будет оценена.

Каталог

Журналы

Комментарии:

1. В операционных системах на базе Linux наличие символа / перед именем папки указывает на то, что папка расположена на самом верху структуры каталогов. Попробуйте добавить . перед ним, т. е. . template_folder='./templates') .

2. В вашем коде нет ‘/’, ваш код app = Flask(__name__, template_folder='templates'

3. Пожалуйста, разместите соответствующую информацию, такую как примеры кода и трассировки ошибок, в текстовой форме, чтобы другим было легче экспериментировать с ней, чтобы помочь вам. Ссылки, в том числе ссылки на изображения, могут однажды стать недействительными и сделать ваш вопрос нечитаемым.

Ответ №1:

попробуйте app = Flask(__name__, template_folder='templates')

Комментарии:

1. Боже мой. Я не могу поверить, что пропустил это. Я потратил 2 часа, пытаясь разобраться в проблеме. Спасибо!

2. Вот как выглядит его текущий код сейчас, на скриншоте ( app = Flask(__name__, template_folder='templates') )

Ответ №2:

Ваш код нуждается в некоторых изменениях. Прежде всего, попробуйте использовать

 render_template('prediction.html')
 

вместо

 render_template('templates/prediction.html')
 

поскольку Flasks уже просматривает папку templates (что в данном случае означает, что он будет искать папку templates внутри папки templates)

Если это не сработает, попробуйте то же самое, но когда вы объявляете папку, сделайте это с помощью:

 app = Flask(__name__, template_folder='/templates')
 

(с ‘/’ перед шаблонами)
, а не ваш текущий

 app = Flask(__name__, template_folder='templates')
 

Если ничего из вышеперечисленного не работает, используйте те же решения, без объявления template_folder вообще, поскольку по умолчанию Flask выглядит в папке с именем templates

Комментарии:

1. Пожалуйста, пересмотрите принятый ответ. Я не думаю, что принятый ответ решил вашу проблему, поскольку ваш код уже был app = Flask(__name__, template_folder='templates') . Если он разрешил это, то ваш вопрос должен быть исправлен.