Как я могу использовать db.create_all (), используя фабричный шаблон приложения фляги? - PullRequest
0 голосов
/ 24 октября 2019

У меня проблемы с созданием моих таблиц в моей фабричной схеме. Прежде чем использовать фабричный шаблон, я мог бы (в терминале) импортировать 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...