การสร้างฐานข้อมูลโดยใช้ flask ไม่ได้ตั้งค่า 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