Обнаружить что-то не так с create_app()

Использование flask create_app(), похоже, не работает.

Ниже мой код

run.py

from gg import app
if __name__ == '__main__':
   app.run(host='x.x.x.x', port='XXXX', debug=True)

__init__.py

from flask import Flask
app = Flask(__name__)
print("hello1")
def create_app():
   print("hello2")
   return app

на моей консоли я получаю только «привет1» почему create_app не работает?

И когда я исправлю init.py как

from flask import Flask
app = Flask(__name__)
print("hello2")

Выдает ошибку: невозможно импортировать приложение из gg.

Любая помощь по активации create_app()?

путь к файлу: run.py находится внутри flask_project, а init.py — внутри flask_project-gg.

임지웅 01.04.2024 03:02

извините.. Я дал неверную информацию с исправленным init.py, исправленный init.py похож на то, как будто я помещаю app=Flask(name) внутри create_app(), и это выдает ошибку: невозможно импортировать приложение из gg

임지웅 01.04.2024 03:06
from gg import app В этом высказывании что такое gg? Это модуль, который вы написали сами?
John Gordon 01.04.2024 03:40
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала проверьте, настроен ли ваш каталог следующим образом:

Main_folder/
│
├── gg/
│   └── __init__.py
└── run.py

Таким образом, ваш run.py сможет найти пакет gg и запустить его.

Теперь простая ошибка в вашем коде: вы никогда нигде не импортировали и не запускали функцию create_app()
Поэтому измените код в run.py на:

from gg import create_app
if __name__ == '__main__':
   gg_app = create_app()
   gg_app.run(host='x.x.x.x', port='XXXX', debug=True)

исправлен init.py, как если бы я поместил `app=Flask(name) внутри create_app(), и это выдает ошибку: невозможно импортировать приложение из gg

Опять же, если вы это сделаете, app вместо этого станет локальной переменной этой функции create_app и, следовательно, ее невозможно будет найти для импорта.

Другие вопросы по теме