Создание базы данных с использованием фляги, ни SQLALCHEMY_DATABASE_URI, ни SQLALCHEMY_BINDS не установлены

У меня проблема с созданием базы данных с помощью flask. Не установлены ни SQLALCHEMY_DATABASE_URI, ни SQLALCHEMY_BINDS; Я всегда получаю эту ошибку

Ни SQLALCHEMY_DATABASE_URI, ни SQLALCHEMY_BINDS не установлены. По умолчанию SQLALCHEMY_DATABASE_URI имеет значение sqlite:///:memory:.

from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///friends.db'

class Friends(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(200), nullable=False)
    date_created = db.Column(db.DateTime, default = datetime.utcnow)

    def __repr__(self):
            return '<Name %r>' % self.id

person Karl Nakouzi    schedule 28.02.2021    source источник
comment
Ваш вопрос может быть воспринят не очень хорошо из-за такого неописательного и многословного заголовка.   -  person Razzle Shazl    schedule 28.02.2021
comment
Карл, проголосуйте/примите ответ на вопрос. Спасибо   -  person tbjorch    schedule 01.03.2021
comment
@tbjorch Готово. Спасибо!   -  person Karl Nakouzi    schedule 01.03.2021


Ответы (1)


Вам нужно переместить конфигурацию db URI в строку перед созданием экземпляра объекта sqlalchemy. В противном случае SQLAlchemy не получит эти данные во время создания экземпляра.

Решение

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///friends.db' # Don't have this line below the next
db = SQLAlchemy(app)
person tbjorch    schedule 28.02.2021