使用 SQLObject orm 库快速将接口数据存入数据库
背景
因为测试需要,要将百万条数据接口查询数据存入数据库中,为了减少 mysql server 侧的操作,是用来 docker 部署了一个服务,如果想将接口 json 数据快速存入数据库中,使用 orm 非常有必要;
orm python 版本都有哪些?
-
SQLAlchemy:
- 功能强大且灵活。
- 支持多种数据库后端,如 SQLite, MySQL, PostgreSQL, Oracle, SQL Server 等。
- 提供了完整的 SQL 抽象层,允许你使用 Python 表达式来编写 SQL 查询。
- 支持 ORM, Core Expression Language, SQL Expression Language 和 Alembic(迁移工具)。
- 广泛用于各种大型项目中。
-
Django ORM:
- Django 框架自带的 ORM。
- 对于 Django 项目来说,它非常集成且易于使用。
- 提供了丰富的查询 API 和关系管理功能。
- 抽象了 SQL 的复杂性,使得数据库操作变得简单直观。
- 不像 SQLAlchemy 那么灵活,但足够满足大多数 Django 项目的需求。
-
Peewee:
- 小型、轻量级的 ORM。
- 支持多种数据库后端。
- 提供了简洁明了的 API。
- 非常适合小型到中型项目。
-
PonyORM:
- 提供了强大的查询 API,支持链式调用和 Pythonic 语法。
- 支持数据库迁移。
- 提供了 ORM、LINQ 和 SQL 之间的混合编程。
- 专注于易用性和性能。
-
SQLObject:
- 另一个轻量级的 ORM。
- 提供了简单的 API 来定义数据库模型和执行查询。
- 适用于小型到中型项目。
-
Storm:
- 基于 Twisted 的 ORM。
- 提供了异步数据库访问。
- 适用于需要高性能异步 I/O 的项目。
-
Elixir:
- 基于 SQLAlchemy 的轻量级 ORM,旨在提供更简洁的 API。
- 适用于那些喜欢 SQLAlchemy 但希望 API 更简洁的开发者。
从对比来看越简单越好,就选择了 sqlobject
扫描二维码关注公众号,回复:
17426897 查看本文章

SQLObject 简单的使用
以下是如何使用 SQLObject
的基本步骤:
- 安装 SQLObject
首先,你需要安装 SQLObject
。你可以使用 pip
,如果使用 pymysql 驱动,还需要安装下
pip install SQLObject
- 定义模型
接下来,你需要定义你的数据库模型。这些模型将映射到数据库中的表。
from sqlobject import SQLObject, StringCol, IntCol
class Person(SQLObject):
name = StringCol(length=50)
age = IntCol()
# 这里可以定义其他方法和属性
# 连接到数据库(在这里是 SQLite,但 SQLObject 也支持其他数据库)
Person.setConnection('sqlite:/:memory:')
# 创建表(如果尚不存在)
Person.createTable(ifNotExists=True)
- 插入数据
你可以使用 Python 对象来插入数据。
john = Person(name='John Doe', age=30)
john.set(name='John Smith', age=31) # 另一种设置属性的方法
john.save() # 将对象保存到数据库
- 查询数据
你可以使用 SQLObject 的查询 API 来查询数据。
# 查询所有 Person 对象
people = Person.select()
for person in people:
print(person.name, person.age)
# 使用条件查询
thirty_year_olds = Person.selectBy(age=30)
for person in thirty_year_olds:
print(person.name)
- 更新和删除数据
你可以使用 Python 对象的方法来更新和删除数据。
# 更新数据
john = Person.byName('John Smith')
john.set(age=32)
john.save()
# 删除数据
john.destroySelf()
- 注意
- 在生产环境中,你可能希望使用更持久的数据库连接,而不是内存中的 SQLite 数据库。
- 你还可以定义关系(如一对多、多对多等),并在查询中使用它们。
- SQLObject 提供了丰富的 API 来处理更复杂的查询和数据库操作。
- 你可以查看 SQLObject 的官方文档以获取更多详细信息和示例:https://sqlobject.org/sqlobject/
- 官方文档包括教程、API 参考、常见问题解答等。
有一点比较恶心的是 SQLObject 的相关文档很少