【问题标题】:Can One flask have two multiple database like in the given below code?一个烧瓶可以像下面给出的代码那样有两个多数据库吗?
【发布时间】:2021-02-10 10:03:52
【问题描述】:

当我尝试运行应用程序时,第一个数据库可以正常工作,但第二个数据库不能正常工作并返回错误 405 任何人都可以发布多个数据库的解决方案

enter image description here


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

class Todo(dbTodo.Model): #<=LIKE THIS
    id = dbTodo.Column(db.Integer,primary_key=True)
    content = dbTodo.Column(db.String(200),nullable=False)
    blockId = dbTodo.Column(db.Integer)

class Blocks(db.Model): #<=LIKE THIS
    id = db.Column(db.Integer,primary_key=True);
    date_create = db.Column(db.DateTime,default=datetime.utcnow)

@app.route('/addto/<int:id>',methods=['POST'])
def addto(id):
    if request.method == 'POST':
        todo = Todo(content=request.form['content'],blockId=id)
        dbTodo.session.add(todo)
        dbTodo.session.commit()
        print(Blocks.query.order_by(Blocks.date_create).all())
        return redirect('/')
    else:
        print(Blocks.query.order_by(Blocks.date_create).all())
        return "failed"


if __name__ == "__main__":
    app.run(debug=True)

【问题讨论】:

  • 您需要添加bind_key

标签: python sql flask flask-sqlalchemy


【解决方案1】:

您正在寻找的是绑定。看看文档: https://flask-sqlalchemy.palletsprojects.com/en/2.x/binds/

SQLALCHEMY_DATABASE_URI = 'postgres://localhost/main'
SQLALCHEMY_BINDS = {
    'users':        'mysqldb://localhost/users',
    'appmeta':      'sqlite:////path/to/appmeta.db'
}


db.create_all()
db.create_all(bind=['users'])
db.create_all(bind='appmeta')
db.drop_all(bind=None)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2014-03-08
    • 2019-04-17
    • 2022-11-16
    相关资源
    最近更新 更多