写点什么

软件测试|测试平台开发 Flask 操作数据库 -ORM

  • 2023-09-07
    北京
  • 本文字数:941 字

    阅读完需:约 3 分钟

什么是持久化

是把数据保存到可永久保存的存储设备中(比如磁盘)。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件中、xml 数据文件中等

ORM(对象关系映射)

作用是在关系型数据库和对象之间做一个映射,这样在具体操作数据库的时候,不需要去和 SQL 语句打交道,只需要去操作对象即可



ORM 于 SQL 的对比:


ORM 的优缺点

优点:


  • 隐藏了数据访问细节

  • ORM 使我们构造固化数据结构变得非常简单


缺点:


  • 性能下降,添加了关联操作

  • 无法解决特别复杂的数据库操作

ORM 中间件配置

插件:Flask-SQLAlchemy

SQLAlchemy 是 python 最有名的 ORM 框架,在 flask 中一般使用 Flask-SQLAlchemy 来操作数据库


安装:


pip install flask-sqlalchemy


注意:flask-sqlalchemy 在安装/使用过程中, 如果出现 ModuleNotFoundError: No module named 'MySQLdb’错误, 则表示缺少 mysql 依赖包,可以安装 pymysql 解决


pip install pymysql

常用配置

  • SQLALCHEMY_DATABASE_URI:用于连接数据的数据库


sqlite:////tmp/test.dbmysql://username:password@server/db
复制代码


连接串格式:


dialect+driver://username:password@host:port/database


dialect 是数据库的实现,mysql,sqlite 等 driver 是数据库的驱动


  • SQLALCHEMY_TRACK_MODIFICATIONS:追踪对象的修改


如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。


  • SQLALCHEMY_BINDS:用于多数据库连接配置


一个映射绑定 (bind) 键到 SQLAlchemy 连接 URIs 的字典。 更多的信息请参阅 绑定多个数据库


  • SQLALCHEMY_POOL_SIZE:连接池的配置,默认为 5


数据库连接池的大小。默认是数据库引擎的默认值 (通常是 5)


from flask import Flaskfrom flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
# mysql数据库库用户名username = "root"# mysql 数据库密码pwd = "123456"# mysql 数据库host地址ip = ""# mysql 数据库端口port = "3306"# 代码使用的数据库名database = "demo"app.config['SQLALCHEMY_DATABASE_URI'] = f'mysql+pymysql://{username}:{pwd}@{ip}:{port}/{database}'app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True# 将app与flask-SQLAlchemy的db进行绑定db = SQLAlchemy(app)
复制代码


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|测试平台开发Flask操作数据库-ORM_霍格沃兹测试开发学社_InfoQ写作社区