Инициализация базы данных с flask - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть следующий код:

init .py:

"""Initialize app."""
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()


def create_app():
    """Construct the core application."""
    app = Flask(__name__, instance_relative_config=False)

    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'

    app.config['RECAPTCHA_PUBLIC_KEY'] = '6LcmEeoUAAAAAIbdhgkFBvz676UCRJMjnSx8H6zy'
    app.config['RECAPTCHA_PARAMETERS'] = {'size': '100%'}

    db.init_app(app)

    # blueprint for auth routes in our app
    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint)

    # blueprint for non-auth parts of app
    from .__main__ import main as main_blueprint
    app.register_blueprint(main_blueprint)

    with app.app_context():
        # Import parts of our application
        from . import routes

        return app

, и я пытаюсь инициализировать БД с помощью следующего кода:

from realProject import db, create_app
db.create_all(app=create_app())

все скрипты находятся в папке realProject, но при попытке скомпилировать последний код я получаю эту ошибку:

ModuleNotFoundError: No module named 'realProject'

Что я делаю не так?

1 Ответ

0 голосов
/ 16 апреля 2020

Вы должны следовать этой структуре:

|__project_name 
     |__app.py                    ----------> The main file from where you run your app 
     |__app     -----> This is the app folder
        ├── templates
        │   └── index.html
        └── __init__.py             -----------> The __init__.py should be inside the app folder for it to be imported
        └── routes.py

И затем сделать это в вашем основном файле:

from app import db, create_app

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