Rumah >pembangunan bahagian belakang >Tutorial Python >TinyDB ialah pangkalan data ringan yang ditulis semata-mata dalam Python.

TinyDB ialah pangkalan data ringan yang ditulis semata-mata dalam Python.

WBOY
WBOYke hadapan
2023-05-15 13:19:061299semak imbas

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

TinyDB ialah pangkalan data ringan yang ditulis dalam Python tulen, dengan hanya 1800 baris kod secara keseluruhan dan tiada kebergantungan luaran.

Matlamat TinyDB adalah untuk memudahkan aplikasi Python kecil menggunakan pangkalan data Bagi sesetengah atur cara mudah, daripada menggunakan pangkalan data SQL, lebih baik menggunakan TinyDB kerana ia mempunyai ciri-ciri berikut:

  • Ringan: Kod sumber semasa mempunyai 1800 baris kod (kira-kira 40% daripada dokumentasi) dan 1600 baris kod ujian.
  • Boleh dipindahkan sesuka hati: Fail pangkalan data dijana dalam folder semasa, tiada perkhidmatan diperlukan dan boleh dipindahkan sesuka hati.
  • Mudah: TinyDB memudahkan pengguna untuk menggunakan dengan menyediakan API yang ringkas dan bersih.
  • Ditulis dalam Python tulen: TinyDB tidak memerlukan pelayan luaran mahupun sebarang kebergantungan daripada PyPI.
  • Berfungsi dengan Python 3.6+ dan PyPy3: TinyDB berfungsi dengan semua versi moden Python dan PyPy.
  • Skala yang berkuasa: Anda boleh melanjutkan TinyDB dengan mudah dengan menulis perisian tengah untuk mengubah suai gelagat storan.
  • 100% Liputan Ujian: Tiada penjelasan diperlukan.

1. Persediaan

Sebelum anda bermula, anda mesti pastikan Python dan pip telah berjaya dipasang pada komputer anda.

Sila pilih mana-mana kaedah berikut untuk memasukkan arahan untuk memasang kebergantungan:

1. Persekitaran Windows Open Cmd (Start-Run-CMD).

2. Persekitaran MacOS Open Terminal (perintah+ruang untuk memasuki Terminal).

3. Jika anda menggunakan editor VSCode atau Pycharm, anda boleh terus menggunakan Terminal di bahagian bawah antara muka.

pip install tinydb

2 >

Memulakan satu fail DB:

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

Ini menjana fail pangkalan data bernama `db.json` dalam folder semasa.

Masukkan data ke dalamnya:

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

Seperti yang anda lihat, kami boleh terus memasukkan data kamus ke dalam pangkalan data tanpa sebarang pemprosesan. Berikut ialah kaedah penyisipan kelompok:

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

Soal semua data:

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

Selain .all(), kita juga boleh menggunakan gelung for untuk melintasi db:

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

Jika anda perlu mencari Untuk data tertentu, anda boleh menggunakan 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'}]

Kemas kini 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')

Padam data:

Anda juga boleh menggunakan pernyataan bersyarat yang serupa untuk memadam data:

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

Kosongkan seluruh pangkalan data:

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

3 Pertanyaan lanjutan

Selain operator titik untuk mengakses data, anda juga boleh menggunakan. perwakilan akses dict asli:

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

Kedua-dua ini Kedua-dua cara penulisan adalah setara.

Sebagai tambahan kepada pengendali pertanyaan biasa (==,

, ...), TinyDB juga menyokong pernyataan where:

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

Ini bersamaan dengan:

rreee

Sintaks ini juga boleh mengakses medan bersarang:

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

Sebarang kaedah pertanyaan:

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

Semak sama ada satu item disertakan dalam senarai:

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'}]}]

TinyDB juga menyokong dan Operasi logik seperti Panda:

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

Itu sahaja untuk pengenalan kepada TinyDB Anda juga boleh melawati dokumentasi rasmi mereka untuk melihat lebih banyak kaedah penggunaan:

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

Terutama bagi pelajar yang ingin melakukan pengoptimuman storan berdasarkan TinyDB, anda boleh membaca bab Storan & Pertengahan secara terperinci.

Atas ialah kandungan terperinci TinyDB ialah pangkalan data ringan yang ditulis semata-mata dalam Python.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam