У меня проблемы с созданием моих таблиц в моей фабричной схеме. Прежде чем использовать фабричный шаблон, я мог бы (в терминале) импортировать db и мои модели, а затем запустить db.create_all (), чтобы создать модели базы данных в базе данных.
Но как мне сделать то же самое, используя шаблон create_app ()?
Я попытался просто положить его в файл инициализации для запуска.
Однако это немного упрощено ..
__init__.py
# more imports here..
from models import *
db = SQLAlchemy()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
db.create_all()
return app
Мое приложение работает нормально, но таблицы в моем БДникогда не создается, и я не получаю никаких ошибок? (В приведенном выше примере я удалил чертежи и т. Д.).
Я запускаю свое приложение с
run.py
from app import create_app
import os
app = create_app("config.{}".format(currentenv))
Я действительно не хочу использовать db.create_all () в файле init.py,это просто я пытался создать таблицы (которые не работали). Я хотел бы сделать это, как и раньше в терминале, но я не уверен, как запустить импорт и создать таблицы.
ОБНОВЛЕНИЕ
После просмотра вдок, я получил несколько шагов дальше. https://flask -sqlalchemy.palletsprojects.com / ru / 2.x / contexts /
Используя следующий код
from app import create_app, db
from config import MyConfig
app = create_app(MyConfig)
with app.app_context():
db.create_all()
I get an error I dont understand to solve
db.init_app(app)
AttributeError: 'str' object has no attribute 'init_app'