Flask-SQLAlchemy 记录

配置项

SQLALCHEMY_DATABASE_URI

sqlite:tmp/test.db

mysql://username:password@server/db

SQLALCHEMY_BINDS一个映射绑定 (bind) 键到 SQLAlchemy 连接 URIs 的字典。 更多的信息请参阅 绑定多个数据库
SQLALCHEMY_ECHO如果设置成 True,SQLAlchemy 将会记录所有 发到标准输出(stderr)的语句,这对调试很有帮助。
SQLALCHEMY_RECORD_QUERIES可以用于显式地禁用或者启用查询记录。查询记录 在调试或者测试模式下自动启用。更多信息请参阅。
SQLALCHEMY_NATIVE_UNICODE可以用于显式地禁用支持原生的 unicode。这是 某些数据库适配器必须的(像在 Ubuntu 某些版本上的 PostgreSQL),当使用不合适的指定无编码的数据库 默认值时。
SQLALCHEMY_POOL_SIZE数据库连接池的大小。默认是数据库引擎的默认值 (通常是 5)。
SQLALCHEMY_POOL_TIMEOUT指定数据库连接池的超时时间,默认是 10。
SQLALCHEMY_POOL_RECYCLE自动回收连接的秒数。这对 MySQL 是必须的,默认 情况下 MySQL 会自动移除闲置 8 小时或者以上的连接。 需要注意地是如果使用 MySQL 的话, Flask-SQLAlchemy 会自动地设置这个值为 2 小时
SQLALCHEMY_MAX_OVERFLOW控制在连接池达到最大值后可以创建的连接数。当这些额外的 连接回收到连接池后将会被断开和抛弃。
SQLALCHEMY_TRACK_MODIFICATIONS如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。

多库

从 0.12 开始,Flask-SQLAlchemy 可以容易地连接到多个数据库。为了实现这个功能,预配置了 SQLAlchemy 来支持多个 “binds”。

什么是绑定(binds)? 在 SQLAlchemy 中一个绑定(bind)是能执行 SQL 语句并且通常是一个连接或者引擎类的东东。在 Flask-SQLAlchemy 中,绑定(bind)总是背后自动为您创建好的引擎。这些引擎中的每个之后都会关联一个短键(bind key)。这个键会在模型声明时使用来把一个模型关联到一个特定引擎。

如果模型没有关联一个特定的引擎的话,就会使用默认的连接(SQLALCHEMY_DATABASE_URI 配置值)。

#'SQLALCHEMY_DATABASE_URI ="数据库类型://用户名:密码@ip:port:库名?指定字符集编码"'
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:xxxxxxxxxxx@192.168.2.92:3306/qa_p?            charset=utf8&autocommit=true"
SQLALCHEMY_BINDS = {
        'ci': 'mysql+pymysql://root:xxxxxxxxxxxxx@192.168.2.92:3306/ci?charset=utf8&autocommit=true',  # 另外配置的数据库
        'mantis': 'mysql+pymysql://mantis:xxxxxxxxxxxxx@117.50.17.66:3306/bugtracker?charset=utf8&autocommit=true',
        # 另外配置的数据库
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Flask-SQLAlchemy 需要先安装 Flask 和 SQLAlchemy,可以使用以下命令来安装: ``` pip install Flask pip install SQLAlchemy pip install Flask-SQLAlchemy ``` 接着,在 Flask 应用程序中导入 Flask-SQLAlchemy: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db' db = SQLAlchemy(app) ``` 在以上代码中,我们首先导入 Flask 和 SQLAlchemy,然后创建 Flask 应用程序实例和一个 SQLAlchemy 实例。在 SQLAlchemy 实例中,我们将 SQLite 数据库的 URI 配置为 'sqlite:///example.db'。 接下来,我们可以创建一个模型类: ```python class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return '<User %r>' % self.username ``` 在以上代码中,我们定义了一个 User 类,它继承自 db.Model。在 User 类中,我们定义了三个属性,分别为 id、username 和 email。id 属性是整型的主键,username 和 email 属性分别为字符串类型的唯一值,并且不能为空。最后,我们定义了一个 __repr__ 方法,它返回一个格式化的字符串,用于调试和日志记录。 现在,我们可以通过 Flask 应用程序实例来创建数据库表: ```python if __name__ == '__main__': app.run() db.create_all() ``` 在以上代码中,我们使用 app.run() 启动 Flask 应用程序,并使用 db.create_all() 创建数据库表。如果数据库表已经存在,则不会创建新的表,否则会创建新的表。 最后,我们可以在 Flask 应用程序中使用数据库: ```python @app.route('/users') def users(): users = User.query.all() return render_template('users.html', users=users) ``` 在以上代码中,我们定义了一个路由 /users,它返回所有的用户。我们使用 User.query.all() 查询所有的用户,并将结果传递到 users.html 模板中显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值