flask利用sqlalchemy框架如何操作两个或者多个mysql的数据库database

有时项目中可能一个项目,比如单点登录。这不仅仅操作一个database 可能还会涉及到 操作另一个database的表,甚至更多个。达到灵活切换 , 这时就麻烦了 这里数据库主要讲的是 mysql

其实Flask-SQLAlchemy官网已经考虑到了,这里主要讲一下项目中它具体的配置,与官网有所不同
主要用到他的设置的参数 SQLALCHEMY_BINDS
在这里插入图片描述
这里主要记住键 “otherdb” 相当于这里我们命的名 后续每个 model会用到

比如我现在想用到 other_test数据库的表 ,如下
在这里插入图片描述
如果您在模型上指定了 bind_key ,您可以用它们准确地做您想要的。模型会自行连 接到指定的数据库连接。

还有种方法

如果觉得不想用model文件而是想 而是有时sql语句比较复杂或者一些特殊的原因 SQLAlchemy已不能满足需求 此时就需要写原生的sql来执行 这种情况也可以操作其他数据库的表

在这里插入图片描述
这种就是有时 需要写原生底层的sql的时候 可以操作其他的数据库 不需要用到SQLAlchemy 固有写法的时候 当然可以封装成函数 使用的时候调用也比较方便
在这里插入图片描述

直接传递 sql语句 就可以实现不同数据库操作 ,非常方便。

参考官网:
http://www.pythondoc.com/flask-sqlalchemy/binds.html#binds

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装FlaskSQLAlchemy的库。可以使用以下命令进行安装: ``` pip install flask pip install sqlalchemy ``` 接下来,你需要在Flask应用程序中配置SQLAlchemy。在你的Flask应用程序中,需要添加以下代码: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://<username>:<password>@<host>/<database_name>' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) ``` 在上面的代码中,你需要用实际的数据库连接信息替换`<username>`, `<password>`, `<host>`和`<database_name>`。`SQLALCHEMY_TRACK_MODIFICATIONS`配置项设置为False可以禁止大部分对数据库的修改监控,以提高性能。 现在,你可以定义一个模型类来表示数据库表。下面是一个示例: ```python class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) email = db.Column(db.String(120), unique=True) def __init__(self, name, email): self.name = name self.email = email def __repr__(self): return '<User %r>' % self.name ``` 最后,你可以使用SQLAlchemy提供的API进行数据库操作。例如,以下代码将在数据库中创建一个新用户: ```python from models import User new_user = User('John', 'john@example.com') db.session.add(new_user) db.session.commit() ``` 以上就是使用FlaskSQLAlchemy连接Mysql数据库的基本过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值