ホームページ >バックエンド開発 >Python チュートリアル >TinyDB は、純粋に Python で書かれた軽量データベースです。

TinyDB は、純粋に Python で書かれた軽量データベースです。

WBOY
WBOY転載
2023-05-15 13:19:061299ブラウズ

TinyDB 一个纯Python编写的轻量级数据库

TinyDB は純粋な Python で書かれた軽量データベースで、コードは合計 1,800 行のみで、外部依存関係はありません。

TinyDB の目標は、小規模な Python アプリケーションでデータベースを使用する際の困難を軽減することです。一部の単純なプログラムでは、SQL データベースを使用する代わりに、TinyDB を使用する方が適切です。これは、TinyDB には次の特性があるためです:

  • 軽量: 現在のソース コードには 1800 行のコード (ドキュメントの約 40%) と 1600 行のテスト コードがあります。
  • 自由に移行可能: データベース ファイルは現在のフォルダーに生成され、サービスを必要とせず、自由に移行できます。
  • シンプルさ: TinyDB は、シンプルでクリーンな API を提供することで、ユーザーが簡単に使用できるようにします。
  • 純粋な Python で書かれています: TinyDB は外部サーバーも PyPI からの依存関係も必要としません。
  • Python 3.6 および PyPy3 で動作: TinyDB は、Python および PyPy のすべての最新バージョンで動作します。
  • 強力なスケーラビリティ: ストレージの動作を変更するミドルウェアを作成することで、TinyDB を簡単に拡張できます。
  • 100% テスト カバレッジ: 説明は不要です。

1. 準備

開始する前に、Python と pip がコンピューターに正常にインストールされていることを確認する必要があります。

依存関係をインストールするコマンドを入力するには、次のいずれかの方法を選択してください:

1. Windows 環境で Cmd (Start-Run-CMD) を開きます。

2. MacOS 環境 ターミナルを開きます (コマンドスペースを入力してターミナルに入ります)。

3. VSCode エディターまたは Pycharm を使用している場合は、インターフェイスの下部にあるターミナルを直接使用できます。

pip install tinydb

2. 簡単な追加、削除、変更、クエリの例

1 つの DB ファイルを初期化します:

from tinydb import TinyDB
db = TinyDB('db.json')

これにより、現在のフォルダーに `db.json` という名前のデータベース ファイルが生成されます。

データをそれに挿入します:

from tinydb import TinyDB
db = TinyDB('db.json')
db.insert({'type': 'apple', 'count': 7})
db.insert({'type': 'peach', 'count': 3})

ご覧のとおり、辞書データを処理せずにデータベースに直接挿入できます。バッチ挿入の方法は次のとおりです:

db.insert_multiple([
 {'name': 'John', 'age': 22},
 {'name': 'John', 'age': 37}])
db.insert_multiple({'int': 1, 'value': i} for i in range(2))

すべてのデータをクエリします:

from tinydb import TinyDB
db = TinyDB('db.json')
db.all()
# [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]

.all() に加えて、for ループを使用してデータベースを走査することもできます:

from tinydb import TinyDB
db = TinyDB('db.json')
for item in db:
 print(item)
# {'count': 7, 'type': 'apple'}
# {'count': 3, 'type': 'peach'}

特定のデータを検索する必要がある場合は、Query():

from tinydb import TinyDB
db = TinyDB('db.json')
Fruit = Query()
db.search(Fruit.type == 'peach')
# [{'count': 3, 'type': 'peach'}]
db.search(Fruit.count > 5)
# [{'count': 7, 'type': 'apple'}]

Update data:

from tinydb import TinyDB
db = TinyDB('db.json')
db.update({'foo': 'bar'})
# 删除某个Key
from tinydb.operations import delete
db.update(delete('key1'), User.name == 'John')

Delete data:

を使用することもできます。データを削除するための同様の条件文:

from tinydb import TinyDB
db = TinyDB('db.json')
db.remove(Fruit.count < 5)
db.all()
# [{'count': 10, 'type': 'apple'}]

データベース全体をクリアする:

from tinydb import TinyDB
db = TinyDB('db.json')
db.truncate()
db.all()
# []

3. 高度なクエリ

データにアクセスするためのドット演算子に加えて、次のコマンドも使用できます。ネイティブの dict アクセス表現:

# 写法1
db.search(User.country-code == 'foo')
# 写法2
db.search(User['country-code'] == 'foo')

これら 2 つの記述方法は同等です。

一般的なクエリ演算子 (==、、...) に加えて、TinyDB は where ステートメントもサポートしています:

from tinydb import where
db.search(where('field') == 'value')

これは次と同等です:

db.search(Query()['field'] == 'value')

この構文は、ネストされたフィールドにもアクセスできます:

db.search(where('birthday').year == 1900)
# 或者
db.search(where('birthday')['year'] == 1900)

任意のクエリ メソッド:

db.search(Group.permissions.any(Permission.type == 'read'))
# [{'name': 'user', 'permissions': [{'type': 'read'}]},
# {'name': 'sudo', 'permissions': [{'type': 'read'}, {'type': 'sudo'}]},
# {'name': 'admin', 'permissions':
# [{'type': 'read'}, {'type': 'write'}, {'type': 'sudo'}]}]

単一の項目がリストに含まれているかどうかを確認します:

db.search(User.name.one_of(['jane', 'john']))

TinyDB は、およびPandas のような論理操作:

# Negate a query:
db.search(~ (User.name == 'John'))
# Logical AND:
db.search((User.name == 'John') & (User.age <= 30))
# Logical OR:
db.search((User.name == 'John') | (User.name == 'Bob'))

TinyDB の紹介はここで終了します。公式ドキュメントにアクセスして、その他の使用方法を確認することもできます:

https://www. php.cn/link/8ff3fdef6f5144f50eb2a83cd34baa5d

特に TinyDB に基づいてストレージの最適化を行いたい学生の場合は、ストレージとミドルウェアの章を詳しく読むことができます。

以上がTinyDB は、純粋に Python で書かれた軽量データベースです。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。