В Flask возможно ли импортировать представления с использованием шаблона create_app () без использования чертежей? - PullRequest
1 голос
/ 10 февраля 2020

У меня очень маленькое приложение Flask, которое выложено следующим образом:

tinker/
      main.py
      /my_package
              init.py
              views.py

Когда я работаю> 1030 * main.py, все работает нормально. Вот содержимое каждого файла:

main.py:

from my_package import app
app.run()

my_package / init .py:

from flask import Flask

app = Flask(__name__)
from my_package import views

my_package / views.py:

from my_package import app

@app.route('/')
def home():
    return 'Ola!!!!!'

Хотя весь приведенный выше код работает нормально, когда я пытаюсь слегка его изменить, используя шаблон кода create_app (), как показано ниже, views.py выдает следующее исключение: " ImportError: невозможно импортировать имя 'app' из 'my_package' "Есть ли способ исправить проблему без использования чертежей?

main.py:

from my_package import create_app
app = create_app()
app.run()

my_package / init .py:

from flask import Flask

def create_app():
    app = Flask(__name__)
    from my_package import views
    return app

my_package / views.py:

from my_package import app

@app.route('/')
def home():
    return 'Ola!!!!!'

1 Ответ

0 голосов
/ 11 февраля 2020

init.py необходимо переименовать в __init__.py

Переместить app = Flask(__name__) за пределы метода create_app

Изменить на from . import app в views.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...