首页 > 解决方案 > 使用烧瓶创建数据库,既没有设置 SQLALCHEMY_DATABASE_URI 也没有设置 SQLALCHEMY_BINDS

问题描述

我在使用烧瓶创建数据库时遇到问题,既没有设置 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

标签: pythonflaskflask-sqlalchemy

解决方案


在实例化 sqlalchemy 对象之前,您需要将 db URI 配置移动到该行。否则 SQLAlchemy 在实例化期间不会接收到该数据。

解决方案

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

推荐阅读