исключение flask.cli.NoAppException: Не удалось импортировать «приложение»

#python #html #python-3.x #flask #jinja2

Вопрос:

 from flask import Flask, render_template 
# Flask is a class that allows us to create an app
# render_template is a method offered by flask

app = Flask(__name__) # creates an app with the name of the file

@app.route('/') # route that listens to the homepage
def index(): # route handler
    # render_template(template_name_or_list) 
    # used to specify an html template to render to the user
    return render_template('index.html', data=[{
        'description': 'Todo 1'
    }, {
        'description': 'Todo 2'
    }, {
        'description': 'Todo 3'
    }])

# To run the app
# In the terminal
# FLASK_APP=app.py FLASK_DEBUG=true flask run
 

Мое заявление называется app.py, и он находится в папке с именем ToDo-Приложение, и в этой папке есть еще одна папка под названием шаблоны, которая содержит index.html файл.

 <html>
    <head>
        <title>Todo App</title>
    </head>
    <body>
        <ul>
            <!-- jinja for loop -->
            {% for d in data %}
            <li>{{ d.description }}</li>
            {% endfor %}
            <!--<li>Todo 1</li>
            <li>Todo 2</li>
            <li>Todo 3</li>
            <li>Todo 4</li>-->
        </ul>
    </body>
</html>
 

В терминале:

Esam@DESKTOP-73QDAD3 MINGW32 /i/web/расширенный трек/1-sql_and_data_modeling_for_the_web/ToDo-Приложение
$ FLASK_APP=app.py FLASK_DEBUG=истинный запуск колбы

  • Приложение для сервировки колбы «app.py» (ленивая загрузка)
  • Среда: рабочее ПРЕДУПРЕЖДЕНИЕ: Это сервер разработки. Не используйте его в производственном развертывании. Вместо этого используйте рабочий сервер WSGI.
  • Режим отладки: вкл.
  • Перезапуск со статистикой
  • Отладчик активен!
  • Контактный код отладчика: 266-552-216
  • Бежим дальше http://127.0.0.1:5000/ (Нажмите CTRL C, чтобы выйти)

Когда я открыл эту ссылку http://127.0.0.1:5000/

Обратная связь (последний последний вызов): Файл «C:UsersEsamAppDataLocalProgramsPythonPython39-32Libsite-packagesflaskcli.py», строка 236, в импорте locate_app(имя_модуля) ModuleNotFoundError: Нет модуля с именем «приложение»

Во время обработки вышеуказанного исключения произошло еще одно исключение:

Обратная связь (последний последний вызов): Файл «C:UsersEsamAppDataLocalProgramsPythonPython39-32Libsite-packagesflaskcli.py», строка 337, в вызове rv = self._load_unlocked() Файл «C:UsersEsamAppDataLocalProgramsPythonPython39-32Libsite-packagesflaskcli.py», строка 324, в _load_unlocked self._app = rv = Файл self.loader () «C:UsersEsamAppDataLocalProgramsPythonPython39-32Libsite-packagesflaskcli.py», строка 381, в файле load_app app = locate_app(self, import_name, имя) «C:UsersEsamAppDataLocalProgramsPythonPython39-32Libsite-packagesflaskcli.py», строка 246, в locate_app вызывает исключение NoAppException( flask.cli.Исключение NoAppException: Не удалось импортировать «приложение».

Ответ №1:

В зависимости от того, какую машину вы используете, вам необходимо выполнить одно из следующих действий:

Unix Bash (Linux, Mac и т.д.):

 $ export FLASK_APP=hello
$ flask run
 

Windows CMD:

 > set FLASK_APP=hello
> flask run
 

Windows PowerShell:

 > $env:FLASK_APP = "hello"
> flask run