分享 7 个用 Python 开发成的数据库

【Python】TinyDB:轻量文档数据库 TinyDB 是一个轻量级的文档数据库,以JSON格式存储数据,主要适用于小型项目或嵌入式系统。TinyDB的主要特点是无模式(schema-less)、纯Python实现、简单易用。TinyDB支持灵活的查询操作,可以对数据进行增删改查等操作,是一个学习数据库的极佳工具。 阅读详情

(欢迎关注我的视频号-AI数字人)

作者:钱魏Way https://www.biaodianfu.com/python-databases.html

👇我的小册 45章教程:(小白用Python量化股票分析小册) ,原价299,限时特价2杯咖啡,满100人涨10元。

Python 作为一种高层次的编程语言,因其简单易用和强大的社区支持,被用于实现多种类型的数据库。这些数据库可以分为几大类,包括关系型数据库、NoSQL 数据库、嵌入式数据库和面向对象数据库等。下面这些数据库不常用,看可以通过学习这些项目源码提升自己对数据库的理解。

PickleDB

PickleDB 是一个轻量级的键值存储数据库,采用 Python 编写,使用 JSON 文件格式来存储数据。它旨在提供一个简单、易用的接口来存储和检索数据,适用于小型项目或需要快速实现持久化存储的场景。

主要特点

  • 轻量级:PickleDB 是一个非常轻量级的数据库,适合于对性能和复杂性要求不高的小型应用。由于其简单的设计和实现,PickleDB 不适合用于大型数据集或高并发场景。

  • 简单的 API:提供类似于 Python 字典的 API,让用户可以通过简单的键值对操作来管理数据。这使得 PickleDB 非常易于学习和使用。

  • 基于 JSON 存储:数据以 JSON 格式存储在磁盘上,这使得数据可以被轻松地读取和修改,同时也便于与其他系统进行数据交换。

  • 持久化存储:数据库的内容会被持久化到磁盘上的 JSON 文件中,保证了程序重启后数据不会丢失。

  • 无依赖性:PickleDB 不依赖于任何外部数据库系统,只需 Python 环境即可运行。

使用场景

  • 配置存储:可以用来存储应用程序的配置数据,尤其是那些不需要频繁更改的配置。

  • 小型项目:对于需要快速开发的小型项目,PickleDB 是一个不错的选择,因其简单易用且无需复杂的数据库配置。

  • 学习和教学:由于其简单的 API 和实现,PickleDB 是学习和教学基本数据库操作的好工具。

  • 临时数据存储:可以用于存储一些临时的数据,尤其是在开发阶段或测试阶段。

注意事项

  • 性能和规模限制:由于其基于 JSON 文件的存储方式,PickleDB 在处理大规模数据时性能可能较差,不适合高并发和大数据量的场景。

  • 数据安全性:JSON 文件存储方式缺乏加密和访问控制机制,因此不适合存储敏感数据。

基本用法

import pickledb

# 创建或打开一个数据库
db = pickledb.load('example.db', auto_dump=True)

# 插入数据
db.set('key1', 'value1')

# 获取数据
value = db.get('key1')
print(value)  # 输出: value1

# 检查键是否存在
exists = db.exists('key1')
print(exists)  # 输出: True

# 删除数据
db.rem('key1')

# 获取所有键
keys = db.getall()
print(keys)

# 设置自动保存
db.dump()

TinyDB

TinyDB 是一个用 Python 编写的轻量级、面向文档的 NoSQL 数据库。它非常适合小型项目和嵌入式应用,因为它不需要任何外部依赖,并且可以直接将数据存储在 JSON 文件中。TinyDB 的设计目标是提供一个简单易用的数据库接口,同时保持足够的灵活性以满足多种应用需求。

主要特点

  • 轻量级和嵌入式:TinyDB 完全用 Python 编写,不需要安装任何数据库服务器或其他依赖。它是一个嵌入式数据库,数据直接存储在本地文件中。

  • 面向文档:数据以文档的形式存储,每个文档都是一个字典对象,可以包含任意层次的嵌套结构。

  • 简单的 API:提供类似于 Python 数据结构的 API,用户可以通过简单的增删改查操作来管理数据。

  • 查询语言:TinyDB 提供了一套强大的查询语言,支持复杂的查询条件、组合查询和正则表达式匹配。

  • 可扩展性:支持插件机制,可以通过编写自定义存储引擎和中间件来扩展其功能。

  • 事务支持:TinyDB 支持基本的事务操作,确保数据操作的原子性。

使用场景

  • 小型项目:TinyDB 非常适合小型项目,尤其是在需要快速开发并且不想设置复杂数据库系统的情况下。

  • 嵌入式应用:由于其轻量级和无依赖性,TinyDB 是嵌入式系统或桌面应用的理想选择。

  • 原型开发:在开发早期阶段,可以使用 TinyDB 快速实现数据存储和检索,后续如果需要可以迁移到更复杂的数据库系统。

  • 配置存储:可以用来存储应用程序的配置数据,特别是需要持久化且结构化的配置。

注意事项

  • 性能和规模限制:TinyDB 适合小型数据集,对于大型数据集或高并发访问场景,性能可能会受到限制。

  • 文件存储:由于数据存储在 JSON 文件中,读写性能会随着文件大小增加而下降。

TinyDB 提供了一个简单且灵活的方式来管理小型数据集,适用于需要快速、简单数据存储解决方案的场合。通过其直观的 API 和强大的查询能力,开发者可以轻松实现数据的增删改查操作。

基本用法

from tinydb import TinyDB, Query

# 创建或打开一个数据库
db = TinyDB('db.json')

# 插入数据
db.insert({'name': 'John', 'age': 22})
db.insert({'name': 'Jane', 'age': 25})

# 查询数据
User = Query()
result = db.search(User.name == 'John')
print(result)  # 输出: [{'name': 'John', 'age': 22}]

# 更新数据
db.update({'age': 23}, User.name == 'John')

# 删除数据
db.remove(User.name == 'Jane')

# 获取所有数据
all_data = db.all()
print(all_data)

# 关闭数据库
db.close()

ZODB

ZODB(Zope Object Database)是一个面向对象的数据库系统,用于在 Python 中存储持久性对象。与传统的关系型数据库不同,ZODB 直接存储 Python 对象,而不是将数据转换为表格形式。这使得它非常适合需要持久化复杂数据结构的应用程序,尤其是在 Python 环境中。

主要特点

  • 面向对象:ZODB 允许直接存储和检索 Python 对象,包括复杂的数据结构和对象图。这消除了对象与关系之间的映射过程,使开发更加自然和简洁。

  • 透明持久性:对象的持久性对开发者是透明的。只需将对象存储在数据库中,ZODB 会自动处理序列化和反序列化操作。

  • 事务支持:ZODB 支持 ACID 事务,确保数据操作的原子性、一致性、隔离性和持久性。这对于需要保证数据一致性的应用非常重要。

  • 版本控制和历史记录:ZODB 支持对象的版本控制和历史记录功能,可以方便地回滚到之前的状态。

  • 可扩展性:ZODB 可以通过多种存储机制扩展,包括文件存储、内存存储和网络存储,以满足不同的需求。

  • 无模式:由于 ZODB 是面向对象的数据库,因此不需要预定义模式。这使得应用程序在设计和实现上更加灵活。

使用场景

  • 复杂对象持久化:适用于需要持久化复杂对象和数据结构的应用,如内容管理系统、科学计算应用等。

  • Python 应用:由于 ZODB 与 Python 对象模型的紧密集成,它特别适合于需要与 Python 紧密结合的应用程序。

  • 需要事务支持的应用:任何需要确保数据一致性和完整性的应用程序都可以从 ZODB 的事务支持中受益。

注意事项

  • 性能和规模:ZODB 适合中小型应用,对于非常大的数据集或需要高性能的场景,可能需要进行性能优化或考虑其他数据库解决方案。

  • 学习曲线:对于习惯于关系型数据库的开发者,可能需要时间来适应 ZODB 的面向对象模型。

  • 社区和生态:ZODB 的社区和生态相对较小,可能需要自行解决一些特定的问题。

基本用法

import transaction
from ZODB import FileStorage, DB
import persistent

# 定义一个持久化对象类
class Person(persistent.Persistent):
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 创建一个文件存储和数据库
storage = FileStorage.FileStorage('mydata.fs')
db = DB(storage)

# 获取数据库连接
connection = db.open()
root = connection.root()

# 添加对象到数据库
root['person'] = Person('John Doe', 30)

# 提交事务
transaction.commit()

# 检索对象
person = root['person']
print(person.name, person.age)

# 关闭连接和存储
connection.close()
db.close()
storage.close()

Durus

Durus 是一个用 Python 编写的持久化存储系统,旨在提供一个简单的、面向对象的数据库解决方案。与 ZODB 类似,Durus 允许开发者将 Python 对象持久化到磁盘上,但它的设计更加轻量级和简单,适合于对复杂性要求不高的项目。类似于 ZODB,但更轻量级。提供了对象持久化的功能,并支持事务。

Durus 的主要特点

  • 面向对象:Durus 是一个面向对象的数据库,支持直接存储和检索 Python 对象。这使得应用程序可以更自然地管理数据,而不需要将对象转换为关系型数据库的表格形式。

  • 持久化存储:数据库将对象持久化到磁盘文件中,确保数据在程序重启后仍然可用。

  • 事务支持:Durus 支持基本的事务机制,确保数据操作的原子性和一致性。事务使得应用程序可以在出现错误时回滚数据变更。

  • 简单易用:urus 的 API 设计简洁,易于学习和使用。适合小型项目和需要快速开发的应用。

  • 轻量级:由于其简单的设计和实现,Durus 非常轻量级,不需要复杂的配置或依赖。

使用场景

  • 小型项目:适用于需要简单数据持久化的项目,尤其是那些不需要复杂查询和高性能的应用。

  • Python 应用:由于其与 Python 对象的紧密集成,Durus 是需要持久化 Python 对象的应用程序的理想选择。

  • 快速开发和原型:在开发早期阶段,可以使用 Durus 快速实现数据存储和检索,后续如果需要可以迁移到更复杂的数据库系统。

注意事项

  • 性能和规模限制:Durus 适合小型数据集,对于大型数据集或需要高性能的场景,可能需要考虑其他数据库解决方案。

  • 功能特性:Durus 提供的功能相对简单,不支持复杂的查询和索引。

  • 社区支持:Durus 的社区和生态相对较小,可能需要自行解决一些特定的问题。

基本用法

from durus.persistent import Persistent
from durus.connection import Connection
from durus.storage import FileStorage

# 定义一个持久化对象类
class Person(Persistent):
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 创建一个文件存储和连接
storage = FileStorage('mydata.durus')
connection = Connection(storage)

# 获取根对象
root = connection.get_root()

# 添加对象到数据库
root['person'] = Person('John Doe', 30)

# 提交事务
connection.commit()

# 检索对象
person = root['person']
print(person.name, person.age)

# 关闭连接和存储
connection.close()
storage.close()

Buzhug

Buzhug 是一个用 Python 编写的轻量级数据库,旨在提供简单的数据库解决方案。它是一种纯 Python 实现的数据库,支持类 SQL 的查询语言,但与传统的关系型数据库相比,它更加轻量和简洁。Buzhug 适用于小型项目和教学用途,尤其是那些不需要复杂的数据库功能的场景。

主要特点

  • 纯 Python 实现:Buzhug 完全用 Python 编写,这使得它非常易于安装和使用,无需依赖其他数据库系统或外部库。

  • 类 SQL 查询:支持类 SQL 的查询语言,使得用户可以通过熟悉的 SQL 语法进行数据操作。

  • 轻量级:由于其简单的设计和实现,Buzhug 是一个轻量级的数据库,非常适合于小型项目和学习用途。

  • 易于使用:Buzhug 的 API 设计直观,适合 Python 初学者和需要快速开发的项目。

  • 无模式限制:数据库没有严格的模式限制,用户可以灵活地添加和修改字段。

使用场景

  • 小型项目:适用于需要简单数据存储的项目,尤其是那些不需要复杂查询和高性能的应用。

  • 教学和学习:由于其简单的实现和类 SQL 的查询支持,Buzhug 是学习数据库基本概念和 SQL 查询的好工具。

  • 快速开发和原型:在开发早期阶段,可以使用 Buzhug 快速实现数据存储和检索,后续如果需要可以迁移到更复杂的数据库系统。

注意事项

  • 性能和规模限制:由于 Buzhug 是纯 Python 实现,性能和功能有限,适合小型数据集和简单应用。

  • 社区支持:Buzhug 的社区和生态系统相对较小,可能需要自行解决一些特定的问题。

  • 功能特性:Buzhug 提供的功能相对简单,不支持复杂的事务和索引。

基本用法

from buzhug import Base

# 创建或打开一个数据库
db = Base('people').create(('name', str), ('age', int))

# 插入数据
db.insert(name='John Doe', age=30)
db.insert(name='Jane Doe', age=25)

# 查询数据
for person in db.select():
    print(person.name, person.age)

# 更新数据
db.update(db.name == 'John Doe', age=31)

# 删除数据
db.delete(db.name == 'Jane Doe')

# 关闭数据库
db.close()

Gadfly

Gadfly 是一个用 Python 编写的轻量级关系型数据库系统,旨在提供一个简单的、纯 Python 的数据库解决方案。它完全用 Python 实现,支持 SQL 查询语言,使得开发者可以在不依赖外部数据库系统的情况下处理关系型数据。Gadfly 适合教学、学习和小型项目,尤其是那些不需要高性能或复杂功能的场景。


主要特点

  • 纯 Python 实现:Gadfly 完全用 Python 编写,这意味着它可以在任何支持 Python 的环境中运行,无需安装其他数据库软件。

  • SQL 支持:Gadfly 支持标准 SQL 查询语言,使得用户可以使用熟悉的 SQL 语法进行数据操作。这对于需要关系型数据管理的应用非常有用。

  • 轻量级:由于其简单的设计和实现,Gadfly 是一个轻量级的数据库,适合于小型项目和教学用途。

  • 嵌入式数据库:Gadfly 是一个嵌入式数据库,不需要服务器或复杂的配置,可以直接在应用程序中使用。

使用场景

  • 教学和学习:Gadfly 是学习 SQL 和数据库基本概念的好工具,因为它不需要复杂的安装和配置。

  • 小型项目:适用于需要简单关系型数据存储的项目,尤其是那些不需要高性能的应用。

  • 快速开发和原型:在开发早期阶段,可以使用 Gadfly 快速实现数据存储和检索,后续如果需要可以迁移到更复杂的数据库系统。

注意事项

  • 性能和规模限制:由于 Gadfly 是纯 Python 实现,性能和功能有限,适合小型数据集和简单应用。

  • 社区支持:Gadfly 的社区和生态系统相对较小,开发活跃度不高,可能需要自行解决一些特定的问题。

  • 兼容性:由于 Gadfly 的开发历史较早,可能在现代 Python 环境中需要进行一些兼容性调整。

基本用法

from gadfly import gadfly

# 创建或连接到一个数据库
connection = gadfly('mydb', 'mydb_directory')

# 获取游标
cursor = connection.cursor()

# 创建表
cursor.execute("CREATE TABLE people (name VARCHAR, age INTEGER)")

# 插入数据
cursor.execute("INSERT INTO people (name, age) VALUES ('John Doe', 30)")
cursor.execute("INSERT INTO people (name, age) VALUES ('Jane Doe', 25)")

# 查询数据
cursor.execute("SELECT * FROM people")
for row in cursor.fetchall():
    print(row)

# 更新数据
cursor.execute("UPDATE people SET age = 31 WHERE name = 'John Doe'")

# 删除数据
cursor.execute("DELETE FROM people WHERE name = 'Jane Doe'")

# 提交事务
connection.commit()

# 关闭连接
connection.close()

PyTables

PyTables 是一个用于管理大量科学数据的开源库,基于 HDF5(Hierarchical Data Format version 5)文件格式。它专为需要高效存储和检索大规模数据的科学计算和数据分析应用而设计。PyTables 提供了一个强大的数据管理工具,支持复杂的数据结构和高效的压缩和检索操作。

主要特点

  • 基于 HDF5:PyTables 使用 HDF5 作为底层存储格式,这是一种用于存储和管理大规模数据的成熟格式,广泛用于科学计算领域。

  • 高效的数据压缩和存储:支持多种压缩算法(如 Zlib、LZO、BZIP2),可以有效地减少存储空间,同时提供高效的数据访问。

  • 层次结构:支持层次结构的数据组织方式,允许用户以文件系统的方式管理数据集和组(类似于文件夹和文件)。

  • 大数据集处理:适合处理无法完全加载到内存中的大数据集,支持部分数据的读取和写入。

  • 数据类型支持:支持多种数据类型,包括数值、字符串、对象数组等,适合多样化的数据存储需求。

  • 查询和检索:提供强大的查询功能,允许用户根据条件高效地检索数据。

  • 与 NumPy 集成:与 NumPy 紧密集成,支持将数据集直接转换为 NumPy 数组,便于进行数值计算和分析。

安装

PyTables 可以通过 pip 安装:pip install tables

基本用法

import numpy as np
import tables

# 创建一个 HDF5 文件
with tables.open_file('example.h5', mode='w') as file:
    # 创建一个组
    group = file.create_group('/', 'data_group', 'Data Group')

    # 创建一个数组
    data = np.array([(1, 'Hello'), (2, 'World')], dtype=[('number', 'i4'), ('word', 'S10')])
    table = file.create_table(group, 'example_table', description=data.dtype, title='Example Table')

    # 插入数据
    row = table.row
    for item in data:
        row['number'] = item['number']
        row['word'] = item['word']
        row.append()
    table.flush()

    # 查询数据
    for row in table.where('number > 1'):
        print(row['number'], row['word'].decode('utf-8'))

    # 读取数据到 NumPy 数组
    np_data = table.read()
    print(np_data)

使用场景

  • 科学计算和数据分析:适用于需要存储和处理大规模科学数据的应用,如气象数据、基因组数据、物理模拟等。

  • 大数据集管理:在需要处理超过内存容量的大数据集时,PyTables 提供了高效的存储和检索机制。

  • 数据归档和共享:HDF5 格式的广泛支持使得 PyTables 非常适合用于数据归档和共享。

注意事项

  • 性能调优:虽然 PyTables 本身提供了高效的存储和检索功能,但性能仍可能受到数据结构、压缩方式等因素的影响,用户可能需要根据具体需求进行调优。

  • 依赖库:PyTables 依赖于 HDF5 库,因此在安装时需要确保 HDF5 库的正确配置。

  • 数据兼容性:虽然 HDF5 是一个跨平台的文件格式,但在不同环境间移动数据时仍需注意版本兼容性。

79d6456c3b96378b8e1d27f5b8a421b5.jpeg

最后推荐一下我们团队写的量化小册的内容,45篇内容!从Python安装,入门,数据分析,爬取股票基金的历史+实时数据,以及如何写一个简单量化策略,策略回测,如何看资金曲线统统都有介绍!非常超值!

欢迎订阅:原价299 早鸟价2杯咖啡钱,即可永久阅读。满500人又要涨价了,现在的价格非常非常低,只要2杯奶茶,就可以终身订阅+课程源码,还有永久陪伴群。48小时无理由退款,放心食用!

ce4eb6cbe24e45851d7e19c680aee7c3.png

往期推荐
量化: 如何用Python爬取创业板历史+实时股票数据!|实战股票分析篇利用Pandas 9招挖掘五粮液股价!|实战股票数据分析篇 Pandas滚动操作 |量化股票第一步,用Python画股票K线,双均线图,可视化你的股票数据!|如何用Python爬取全部800多只ETF基金数据!|如何用Python写一个双均线策略 |如何用Python开发一个多策略机器人!上篇!|Python量化系列-用布林策略买五粮液能赚多少钱?|只要4秒钟!用Python 获取上证指数34年的历史日线数据!

 
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁

Python轻量级 NoSQL 数据库之tinydb使用详解 在现代应用开发中,使用数据库来存储和管理数据是非常常见的需求。对于简单的数据存储需求,关系型数据库可能显得过于复杂。TinyDB 是一个纯 Python 实现的轻量级 NoSQL 数据库,专为嵌入式场景设计,适用于小型项目、原型开发和教学等场景。本文将详细介绍 TinyDB 库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。 阅读详情

相关推荐

Python 之数据库操作(Python Database Operations)

MySQL 采用标准的 SQL 语言(结构化查询语言),SQL 是一种数据库查 询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 虽然 Python 可以支持数据的本地存储,但前提是先从数据库获取才能保存下来,同 时还无法存储过多的数据,因为数据释放和使用会占用较大的内存,数据库负责把磁盘数据 组织好放回内存, Python 负责在内存中操作数据。本章详细介绍Python数据库操作。

Linux运维老纪的博客 2062

tinydb,一个超级实用的 Python 库!

Python TinyDB 是一个嵌入式(embedded)的 NoSQL 数据库,它被设计用于在 Python 应用程序中存储和检索数据。与传统数据库管理系统不同,TinyDB 不需要单独的数据库服务器,而是将数据存储在单个 JSON 文件中。这使得 TinyDB 非常适合小型项目、原型开发和快速的数据存储需求。Python TinyDB 是一个轻量级的嵌入式数据库,适用于小型项目和快速原型开发。它提供了简单而强大的 API,使数据的存储和检索变得容易。

涛哥聊Python 1770

python snap7 plc db_python 用Snap7读写西门子PLC中DB块

最近要开发基于TCP/IP协议的西门子S7系列PLC的通讯和数据采集,网上搜罗了一圈发现有python snap7还有HSL这两个工具,不过考虑到商用界限并且鉴于此次开发时间足够,就自己研究上手了,由于网上解决方案有限,查阅大部分资料只能查到读一些I/O/M之类的接口,DB块基本没有...无赖只好啃manual。基本上主要用snap7的read_area 、write_area两个方法就可以实现,...

weixin_39620578的博客 1579

pickleDB一个轻量级python数据库

如果你是从小甲鱼那边学完pickle直接过来,你可以直接忘记pickle了,使用pickledb能够让你存储数据更加方便而且强大,但是请不要用它来存储重要数据,请将那些数据存到sqlite或者mysql之类更加有安全保障的地方。参数2值(value)的内容,值可以是任何值,python内字典支持的所有内容都可以存入,包括但不限于。可以为键添加更多的值,这个和上面方法的区别在于,如果有同名的数据,那么这个命令不会覆盖,而是会尝试添加。如果添加的值是一个数字,那么他们会相加。...

m0_52475295的博客 1355

Python-snap7实战:高效读取S7-1200 PLC的DB块数据

本文详细介绍了使用Python-snap7库高效读取西门子S7-1200 PLC中DB块数据的完整实战流程。内容涵盖PLC关键配置(如取消优化块访问)、snap7环境搭建、连接建立、核心的db_read函数使用,以及如何解析布尔、整数、浮点、字符串等数据类型。通过构建配置驱动的通用解析工具和避坑指南,帮助开发者快速构建稳定、高效的工业数据采集方案,实现Python与PLC的无缝通讯。

weixin_29072299的博客 557

pickledb:pickleDB是使用Python的json模块的开源键值存储

pickleDB pickleDB是基于模块的轻量级,快速且简单的数据库。 而且它是BSD许可! pickleDB很有趣 >> > import pickledb >> > db = pickledb . load ( 'test.db' , False ) >> > db . set ( 'key' , 'value' ) >> > db . get ( 'key' ) 'value' >> > db . dump () True 易于安装 $ pip install pickledb 链接 最新发行说明(版本:0.9) rem(key)现在返回False而不是引发异常(0.9dev)

分享7个用Python开发成的数据库

Python 作为一种高层次的编程语言,因其简单易用和强大的社区支持,被用于实现多种类型的数据库!

m0_75067629的博客 1488

【可信数据空间-部署方案】

此部署架构体现了以下几个核心原则:去中心化: 数据存储和处理完全分布在各个参与者端,运营方只提供核心的协调和信任基础设施。安全边界清晰: 通过VPC、DMZ、防火墙、K8s命名空间等技术,在每个层级都建立了严格的安全边界。高可用与弹性: 所有关键服务均以集群方式部署,避免单点故障,并能根据负载动态伸缩。云原生: 全面采用容器化和Kubernetes编排,简化部署、管理和运维复杂度。合规性: 架构设计天然满足数据驻留要求(数据留在企业本地),并为所有操作提供不可篡改的审计追踪能力。

u014716614的博客 772

分享7 个用 Python 开发成的数据库

Python 作为一种高层次的编程语言,因其简单易用和强大的社区支持,被用于实现多种类型的数据库。这些数据库可以分为几大类,包括关系型数据库、NoSQL 数据库、嵌入式数据库和面向对象数据库等。下面这些数据库不常用,看可以通过学习这些项目源码提升自己对数据库的理解。

weixin_53707653的博客 1151

【架构设计】DDD 到底解决了什么问题

DDD作为架构设计思想帮助微服务控制规模复杂度,那它是怎么做到的呢?第一章提出了架构的根本目是解决系统复杂度,并简要说明系统复杂度的六个来源及通用解法,为我们设计架构提供了清晰可执行的操作思路。

DreamSun的博客 1162

如何用 OBProxy 实现 OceanBase 的最佳路由策略

本文基于业务中一类常见的路由问题展开,对OceanBase的路由功能及对应配置项做详细介绍,指导用户在业务实践中如何正确的配置路由策略及快速排查路由问题

OceanBase分布式数据库的博客 1695

分享Python7个爬虫小案例(附源码)

① Python所有方向的学习路线图,清楚各个方向要学什么东西② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④ 20款主流手游迫解 爬虫手游逆行迫解教程包⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解⑦ 超300本Python电子好书,从入门到高阶应有尽有⑧ 华为出品独家Python漫画教程,手机也能学习。

lvaolan8888的博客 6120

数字音频接口之I2S总线协议详解

1、SDATA,也就是串行数据信号,使用二进制传输数字信号。请注意数据的传输形式为补码的方式2、例如音频的采样率是8K,一s内存采样8K个点,一个点包含一个左声道,一个右声道,所以LRCK是8K,BCLK是2×采样频率×采样位数3、同时双向(TX和RX)音频流:串行数据同步移位到时钟信号SCK和LRCK。在SCK的下降沿将TX数据写入SDOUT引脚,并在SCK的上升沿从SDIN引脚读取RX数据。始终首先发送最高有效位(MSB);TX和RX均可在主模式和从模式下使用。

卓学课堂 3万+

python达梦数据库_【干货分享】Linux下DM7与Python的适配方法

【干货分享】Linux下DM7与Python的适配方法1.概述dmPython是DM提供的依据Python DB API version 2.0中API使用规定而开发的数据库访问接口。dmPython 实现这些API,使Python应用程序能够对DM数据库进行访问。dmPytho通过调用DM DPI接口完成python模块扩展。在其使用过程中,除Python标准库以外,还需要DPI的运行环境。本文...

weixin_29130215的博客 504

告别绕线!用Altium Designer从零设计一个PCB平面变压器(附3D模型)

本文详细介绍了如何使用Altium Designer从零设计一个PCB平面变压器,包括磁芯选型、电气参数计算、PCB设计实战技巧以及3D验证与生产输出。通过将绕组直接集成到PCB层中,配合嵌入式磁芯,实现了小型化、高功率密度的电源设计,适用于中低电流、高频应用场景。附3D模型,帮助读者快速掌握这一创新设计流程。

weixin_33716154的博客 445

ROS中tf2_ros::Buffer.lookupTransform的正确使用姿势:从踩坑到填坑

本文深入解析了ROS中tf2_ros::Buffer.lookupTransform接口的正确使用方法,重点剖析了因tf2_ros::TransformListener生命周期管理不当导致的经典问题。文章提供了从理解Buffer与Listener共生关系、类成员设计黄金法则到参数详解与异常处理的完整避坑指南,并给出了构建健壮坐标变换工具类的实战方案,帮助开发者稳定实现机器人坐标系变换。

weixin_29253711的博客 137

python 用Snap7读写西门子PLC中DB块

最近要开发基于TCP/IP协议的西门子S7系列PLC的通讯和数据采集,网上搜罗了一圈发现有python snap7还有HSL这两个工具,不过考虑到商用界限并且鉴于此次开发时间足够,就自己研究上手了, 由于网上解决方案有限,查阅大部分资料只能查到读一些I/O/M之类的接口,DB块基本没有...无赖只好啃manual。 基本上主要用snap7的read_area 、wr...

weixin_41863519的博客 4642

windows中搭建sonic云真机环境/云真机环境搭建-基于docker容器部署

基于Windows系统搭建Sonic远程云真机环境实现通过浏览器操作手机端系统

雾林小妖的博客 1019

分享Python技术下AutojsPro7云控代码

命令目前是预定义三个息屏、打开微信和显示桌面。获取源码自定义追加即可。服务器发送命令的方式和发送任务的方式是一致的。

zy0412326的专栏 1962

SAP S4 HANA:按单生产(MTO)场景中的COGS分割

本文介绍了SAP S/4HANA中提供的各种选项,以在销售订单/商品是按订单生产(以下称为MTO)生产流程中的成本对象时,在基于帐户的COPA环境中报告COGS分割信息。

adam915的博客 1192

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: “神仙外企”、“IT养老院”前员工忆往昔:曾经是乌托邦、工资多得花不完只能买房...
下一篇: 万人追读,未出版就爆火,这本机器学习漫画小抄终于出版了!
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值