Я учусь flask. У меня есть структура каталогов, которая выглядит примерно так.
project
- controllers
-- auth.py
-- main.py
- db
-- setup.py
- models
-- models.py
- templates
-- base.html
-- index.html
-- login.html
-- signup.html
-- 404.html
-__init__.py
Файл init .py выглядит так
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# init SQLAlchemy so we can use it later in our models
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
app.config['SECRET_KEY'] = '9OLWxND4o83j4K4iuopO'
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/mission_to_mars'
db.init_app(app)
# blueprint for auth routes in our app
from .controllers.auth import auth as auth_blueprint
app.register_blueprint(auth_blueprint)
# blueprint for non-auth parts of app
from .controllers.main import main as main_blueprint
app.register_blueprint(main_blueprint)
return app
Я пытаюсь импортировать переменная db и функция create_app () в controllers / auth.py, controllers / main.py, models / models.py, db / setup.py
Я пробовал следующие синтаксисы
from .. import db, create_app
, что дает ошибку:
ImportError: attempted relative import with no known parent package
Я также пробовал
from project import db, create_app
, что дает ошибку
ModuleNotFoundError: No module named 'project'
Я хочу знать, как я могу импортировать классы из разных каталогов, чтобы я мог использовать их в дальнейшем в проекте.
Заранее спасибо