【Python】使用 SQLObject orm 库快速将接口数据存入数据库

使用 SQLObject orm 库快速将接口数据存入数据库

背景

因为测试需要,要将百万条数据接口查询数据存入数据库中,为了减少 mysql server 侧的操作,是用来 docker 部署了一个服务,如果想将接口 json 数据快速存入数据库中,使用 orm 非常有必要;

orm python 版本都有哪些?

  1. SQLAlchemy

    • 功能强大且灵活。
    • 支持多种数据库后端,如 SQLite, MySQL, PostgreSQL, Oracle, SQL Server 等。
    • 提供了完整的 SQL 抽象层,允许你使用 Python 表达式来编写 SQL 查询。
    • 支持 ORM, Core Expression Language, SQL Expression Language 和 Alembic(迁移工具)。
    • 广泛用于各种大型项目中。
  2. Django ORM

    • Django 框架自带的 ORM。
    • 对于 Django 项目来说,它非常集成且易于使用。
    • 提供了丰富的查询 API 和关系管理功能。
    • 抽象了 SQL 的复杂性,使得数据库操作变得简单直观。
    • 不像 SQLAlchemy 那么灵活,但足够满足大多数 Django 项目的需求。
  3. Peewee

    • 小型、轻量级的 ORM。
    • 支持多种数据库后端。
    • 提供了简洁明了的 API。
    • 非常适合小型到中型项目。
  4. PonyORM

    • 提供了强大的查询 API,支持链式调用和 Pythonic 语法。
    • 支持数据库迁移。
    • 提供了 ORM、LINQ 和 SQL 之间的混合编程。
    • 专注于易用性和性能。
  5. SQLObject

    • 另一个轻量级的 ORM。
    • 提供了简单的 API 来定义数据库模型和执行查询。
    • 适用于小型到中型项目。
  6. Storm

    • 基于 Twisted 的 ORM。
    • 提供了异步数据库访问。
    • 适用于需要高性能异步 I/O 的项目。
  7. Elixir

    • 基于 SQLAlchemy 的轻量级 ORM,旨在提供更简洁的 API。
    • 适用于那些喜欢 SQLAlchemy 但希望 API 更简洁的开发者。

从对比来看越简单越好,就选择了 sqlobject

SQLObject 简单的使用

以下是如何使用 SQLObject 的基本步骤:

  1. 安装 SQLObject

首先,你需要安装 SQLObject。你可以使用 pip,如果使用 pymysql 驱动,还需要安装下

pip install SQLObject
  1. 定义模型

接下来,你需要定义你的数据库模型。这些模型将映射到数据库中的表。

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)
  1. 插入数据

你可以使用 Python 对象来插入数据。

john = Person(name='John Doe', age=30)
john.set(name='John Smith', age=31)  # 另一种设置属性的方法
john.save()  # 将对象保存到数据库
  1. 查询数据

你可以使用 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)
  1. 更新和删除数据

你可以使用 Python 对象的方法来更新和删除数据。

# 更新数据
john = Person.byName('John Smith')
john.set(age=32)
john.save()

# 删除数据
john.destroySelf()
  1. 注意
  • 在生产环境中,你可能希望使用更持久的数据库连接,而不是内存中的 SQLite 数据库。
  • 你还可以定义关系(如一对多、多对多等),并在查询中使用它们。
  • SQLObject 提供了丰富的 API 来处理更复杂的查询和数据库操作。
  • 你可以查看 SQLObject 的官方文档以获取更多详细信息和示例:https://sqlobject.org/sqlobject/
  • 官方文档包括教程、API 参考、常见问题解答等。

有一点比较恶心的是 SQLObject 的相关文档很少

相关推荐

  1. 【金融数据接口】wind数据python使用教程

    2024-06-06 21:10:03       21 阅读
  2. Python——字典数据存入excel

    2024-06-06 21:10:03       36 阅读
  3. 使用Python快速模拟前端常用页面数据格式

    2024-06-06 21:10:03       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 21:10:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 21:10:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 21:10:03       82 阅读
  4. Python语言-面向对象

    2024-06-06 21:10:03       91 阅读

热门阅读

  1. TP6 事件绑定、监听、订阅

    2024-06-06 21:10:03       28 阅读
  2. 使用Keepalived提高吞吐量和负载均衡ip_hash.

    2024-06-06 21:10:03       30 阅读
  3. 找到自己的前提是认识自己

    2024-06-06 21:10:03       26 阅读
  4. Android Studio SharedPreferences的使用

    2024-06-06 21:10:03       29 阅读
  5. 使用Scapy框架分析HTTP流量

    2024-06-06 21:10:03       31 阅读
  6. 无人机反制软硬手段

    2024-06-06 21:10:03       30 阅读
  7. 单例模式(C语言)

    2024-06-06 21:10:03       32 阅读
  8. 自学之路Flutter使用Provider进行状态管理

    2024-06-06 21:10:03       31 阅读