Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengendalian pangkalan data dalam Python: SQLite dan Redis

Pengendalian pangkalan data dalam Python: SQLite dan Redis

王林
王林asal
2023-09-04 19:37:12697semak imbas

Dalam era maklumat yang kita hidup, kita dapat melihat berapa banyak data yang dunia bertukar. Kami pada asasnya mencipta, menyimpan dan mendapatkan semula data pada skala yang luas! Harus ada cara untuk menangani semua ini - tidak mungkin ia boleh merebak ke mana-mana tanpa sebarang pengurusan, bukan? Ini adalah sistem pengurusan pangkalan data (DBMS).

DBMS ialah sistem perisian yang membolehkan anda mencipta, menyimpan, mengubah suai, mendapatkan semula dan sebaliknya memanipulasi data dalam pangkalan data. Sistem sedemikian juga berbeza dari segi saiz, daripada sistem kecil yang hanya berjalan pada komputer peribadi kepada sistem besar yang berjalan pada kerangka utama.

Tutorial ini memfokuskan pada Python, bukan reka bentuk pangkalan data. Ya, Python sangat mampu berinteraksi dengan pangkalan data, dan itulah yang saya akan tunjukkan kepada anda dalam tutorial ini. Anda akan belajar cara menggunakan Python untuk bekerja dengan pangkalan data SQLite dan Redis.

Jom mulakan!

API Pangkalan Data Python

Seperti yang dinyatakan di atas, Python dapat berinteraksi dengan pangkalan data. Tetapi bagaimana ia boleh melakukan ini? Python menggunakan apa yang dipanggil API Pangkalan Data Python untuk berinteraksi dengan pangkalan data. API ini membolehkan kami memprogramkan sistem pengurusan pangkalan data (DBMS) yang berbeza. Walau bagaimanapun, proses yang diikuti pada tahap kod adalah sama untuk DBMS yang berbeza seperti berikut:

  1. Wujudkan sambungan ke pangkalan data pilihan anda.
  2. Buat kursor untuk berkomunikasi dengan data.
  3. Gunakan SQL untuk memanipulasi data (interaktif).
  4. Memberitahu sambungan untuk menggunakan operasi SQL pada data dan menjadikannya kekal (Commit), atau menyuruhnya untuk membatalkan operasi ini (Rollback), dengan itu mengembalikan data kepada keadaan sebelum interaksi berlaku.
  5. Tutupsambungan ke pangkalan data.

SQLite

SQLite ialah sumber terbuka, berciri penuh, kendiri (memerlukan sedikit sokongan daripada perpustakaan luaran), tanpa pelayan (tiada pelayan diperlukan untuk menjalankan enjin pangkalan data, dan merupakan pangkalan data yang disimpan secara tempatan), konfigurasi sifar (tiada pemasangan atau konfigurasi diperlukan ), berasaskan SQL Sistem pengurusan pangkalan data yang ringan (yang boleh menjalankan pertanyaan SQL pada jadual SQLite) dan menggunakan a fail data untuk menyimpan data.

Perlu dinyatakan bahawa SQLite digunakan oleh syarikat besar seperti Google, Apple, Microsoft, dll., yang menjadikannya sangat dipercayai. Dalam tutorial ini kami akan menggunakan SQLite untuk berinteraksi dengan pangkalan data, lebih khusus kami akan menggunakan modul sqlite3 dalam Python.

Python dan SQLite

Seperti yang dinyatakan di atas, menggunakan pangkalan data melibatkan lima langkah utama. Mari lihat langkah-langkah ini dalam tindakan.

1. Wujudkan sambungan ke pangkalan data pilihan anda

Langkah ini dilaksanakan seperti berikut:

conn = sqlite3.connect('company.db')conn = sqlite3.connect('company.db')

正如 sqlite3 文档中所述:

要使用该模块,您必须首先创建一个表示数据库的 Connection 对象。

在上面的代码中,请注意数据将存储在文件 company.db 中。

2.创建游标来与数据通信

使用数据库的下一步是创建游标,如下所示:

curs = conn.cursor()

3.使用 SQL 操作数据

连接数据库并创建游标后,我们现在就可以处理(交互)数据了。换句话说,我们现在可以在数据库 company.db 上运行 SQL 命令。

假设我们要在数据库 company 中创建一个新表 employee。在这种情况下,我们需要运行 SQL 命令。为此,我们将使用 sqlite3 模块的 execute() 方法。因此,Python 语句将如下所示:

curs.execute('创建表员工(姓名,年龄)')

此语句将运行一个 SQL 命令,该命令将创建一个名为 employee 的表,其中包含两列(字段)nameage

我们现在可以运行一个新的 SQL 命令来在表中插入数据,如下所示:

curs.execute("插入员工值('Ali', 28)")

您还可以一次插入多个值,如下所示:

值 = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]

在这种情况下,我们将使用方法execute(),而不是使用方法executemany()来执行上述多个值。

curs.executemany('插入员工值(?,?)', value)

Seperti yang dinyatakan dalam dokumentasi sqlite3:

Untuk menggunakan modul ini, anda mesti mencipta objek Connection yang mewakili pangkalan data.

Dalam kod di atas, sila ambil perhatian bahawa data akan disimpan dalam fail company.db.

2. Buat kursor untuk berkomunikasi dengan data 🎜Langkah seterusnya dalam bekerja dengan pangkalan data ialah mencipta kursor seperti yang ditunjukkan di bawah: 🎜 🎜curs = conn.cursor()🎜

3 🎜Selepas menyambung ke pangkalan data dan mencipta kursor, kami kini boleh memproses (berinteraksi dengan) data. Dalam erti kata lain, kita kini boleh menjalankan perintah SQL pada pangkalan data company.db. 🎜 🎜Andaikan kita ingin mencipta jadual baharu pekerja dalam pangkalan data syarikat. Dalam kes ini, kita perlu menjalankan arahan SQL. Untuk melakukan ini, kami akan menggunakan kaedah execute() modul sqlite3. Oleh itu, pernyataan Python akan kelihatan seperti ini: 🎜 🎜curs.execute('Buat pekerja jadual (nama, umur)')🎜 🎜Pernyataan ini akan menjalankan arahan SQL yang akan mencipta jadual bernama pekerja dengan dua lajur (medan) name code> dan umur. 🎜Kami kini boleh menjalankan arahan SQL baharu untuk memasukkan data ke dalam jadual seperti yang ditunjukkan di bawah: 🎜 🎜curs.execute("Masukkan nilai pekerja ('Ali', 28)")🎜 🎜Anda juga boleh memasukkan berbilang nilai serentak seperti yang ditunjukkan di bawah: 🎜 🎜Nilai = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)] 🎜 🎜Dalam kes ini, kami akan menggunakan kaedah execute() dan bukannya kaedah executemany() untuk melaksanakan nilai berbilang di atas . 🎜 🎜curs.executemany('Masukkan nilai pekerja (?,?)', nilai)🎜 🎜4. Hantar perubahan🎜 🎜Dalam langkah ini kami ingin memohon (komit) perubahan yang kami buat pada langkah sebelumnya. Ia mudah dan kelihatan seperti ini: 🎜

conn.commit()conn.commit()

5.关闭与数据库的连接

执行操作并提交更改后,最后一步是关闭连接:

conn.close()

让我们将所有步骤放在一个脚本中。该程序将如下所示(请注意,我们必须首先导入 sqlite3 模块):

import sqlite3
conn = sqlite3.connect('company.db')
curs = conn.cursor()
curs.execute('create table employee (name, age)')
curs.execute("insert into employee values ('Ali', 28)")
values = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]
curs.executemany('insert into employee values(?,?)', values)
conn.commit()
conn.close()

如果运行该脚本,您应该在当前目录中获得一个名为 company.db 的文件。下载此文件,因为我们将在下一步中使用它。

6.让我们浏览一下数据库

创建了数据库和表并添加了一些数据后,让我们看看 company.db (您在上一节中下载的文件)里面有什么。为此,我们将使用一个很好的工具:DB Browser for SQLite。继续将该工具下载到您的计算机上。打开程序后,您应该看到如下所示的屏幕:

Pengendalian pangkalan data dalam Python: SQLite dan Redis

使用顶部的打开数据库按钮打开数据库,在这种情况下,您应该获得数据库结构,如下所示:

Pengendalian pangkalan data dalam Python: SQLite dan Redis

请注意,我们列出了表 employee,其中包含两个字段:nameage

要确认上面的代码有效并且数据已添加到表中,请单击浏览数据选项卡。您应该看到类似以下内容:

Pengendalian pangkalan data dalam Python: SQLite dan Redis

可以看到,数据库(company)和表(employee)已经创建完成,并且数据已成功添加到表中。

Redis

远程词典服务器,简称为Redis,是一个强大的 NoSQL 数据库,也能够充当内存缓存。 Redis 由 Salvatore Sanfilippo 开发,目前由 Redis Labs 维护。该软件使用C编程语言编写,并且是开源的(BSD许可证)。

Redis 最显着的特点之一就是它的数据结构存储机制。您可以使用 Python 中的相同数据类型(字符串、集合、整数、列表、字典等)在 Redis 中存储数据。 这使得 Redis 成为 Python 开发人员的热门选择。

Redis 和 Python

除了其数据结构存储机制之外,Python 开发人员还因为 Redis 拥有大量 Python 客户端而更喜欢 Redis 而不是其他 NoSQL 数据库,其中最受欢迎的选择可能是 redis-py。 Redis-py 提供了用于在 Redis 服务器中存储各种数据的内置命令。

现在我们对 Redis 有了基本的了解,让我们学习如何在其中存储数据。在继续之前,请确保您的计算机上安装了 Redis 服务器。

1.安装Redis.py客户端

首先,为您的 Python 脚本创建一个名为 redis-python 的新文件夹。接下来,使用命令终端 cd 到该文件夹​​,然后运行以下命令来安装 Redis 客户端:

pip install redis

然后,在 redis-python 中创建一个名为 app.py 的文件,并使用文本编辑器打开该文件。下一步是创建用于将数据添加到数据库的 Python 脚本。

2.将Redis客户端连接到Redis服务器

首先,在app.py中,导入redis并设置Redis服务器主机和端口地址的变量:

import redis
redis_host = 'localhost'
redis_port = 6379

接下来,定义要添加到数据库的数据。在本例中,我们将创建一个简单的 Python 字典:

user = {
    'ID': 1,
    'name': 'Kingsley Ubah',
    'email': 'ubahthebuilder@gmail.com',
    'role': 'Tech Writing',
}

接下来,使用 try... except 定义 add_to_db 函数。在 try 块中,我们连接到本地 Redis 服务器并将上述字典存储在数据库中,然后在控制台上输出值。如果代码失败,我们会在 except

5. Tutup sambungan ke pangkalan data

Selepas melakukan operasi dan melakukan perubahan, langkah terakhir ialah menutup sambungan:

conn.close()

Mari letak semua langkah dalam skrip. Program ini akan kelihatan seperti ini (perhatikan bahawa kita mesti import modul sqlite3 dahulu):

def add_to_db():
    try:
        r = redis.StrictRedis(host = redis_host, port = redis_port, decode_responses=True)
        r.hmset("newUserOne", user)
        msg = r.hgetall("newUserOne")
        print(msg)
    except Exception as e:
        print(f"Something went wrong {e}")
 
# Runs the function:
if __name__ == "__main__":
    add_to_db()

Jika anda menjalankan skrip, anda harus mendapatkan fail bernama company.db dalam direktori semasa. Muat turun fail ini kerana kami akan menggunakannya dalam langkah seterusnya.

6 Selepas mencipta pangkalan data dan jadual serta menambah beberapa data, mari lihat kandungan company.db (fail yang anda muat turun di bahagian sebelumnya). Untuk ini kami akan menggunakan alat yang hebat: Pelayar DB untuk SQLite. Teruskan dan muat turun alat ke komputer anda. Selepas membuka program, anda sepatutnya melihat skrin seperti ini: 🎜 🎜Pemprosesan pangkalan data dalam Python: SQLite dan Redis🎜 🎜Buka pangkalan data menggunakan butang Buka Pangkalan Data di bahagian atas, dalam kes ini anda harus mendapatkan Struktur Pangkalan Data seperti yang ditunjukkan di bawah: 🎜 🎜Pemprosesan pangkalan data dalam Python: SQLite dan Redis🎜 🎜Sila ambil perhatian bahawa kami menyenaraikan jadual pekerja, yang mengandungi dua medan: name dan umur . 🎜 🎜Untuk mengesahkan bahawa kod di atas berfungsi dan data telah ditambahkan pada jadual, klik tab Semak Imbas Data. Anda sepatutnya melihat sesuatu seperti ini: 🎜 🎜Pemprosesan pangkalan data dalam Python: SQLite dan Redis🎜 🎜Anda boleh melihat bahawa pangkalan data (syarikat) dan jadual (pekerja) telah dibuat dan data telah berjaya ditambahkan pada meja itu.

Redis

🎜🎜Pelayan kamus jauh, yang dirujuk sebagai Redis, ialah pangkalan data NoSQL yang berkuasa yang juga boleh bertindak sebagai cache dalam memori. Redis dibangunkan oleh Salvatore Sanfilippo dan kini diselenggara oleh Redis Labs. Perisian ini ditulis dalam bahasa pengaturcaraan C dan sumber terbuka (lesen BSD). 🎜🎜 🎜🎜Salah satu ciri Redis yang paling ketara ialah mekanisme penyimpanan struktur datanya. Anda boleh menyimpan data dalam Redis menggunakan jenis data yang sama dalam Python (rentetan, set, integer, senarai, kamus, dll.). 🎜🎜Ini menjadikan Redis pilihan popular dalam kalangan pembangun Python. 🎜🎜

🎜Redis dan Python🎜🎜 🎜🎜Selain mekanisme penyimpanan struktur datanya, pembangun Python juga lebih suka Redis berbanding pangkalan data NoSQL lain kerana bilangan pelanggan Pythonnya yang banyak, pilihan paling popular yang mungkin redis-py. Redis-py menyediakan arahan terbina dalam untuk menyimpan pelbagai data dalam pelayan Redis. 🎜🎜 🎜🎜Sekarang kita mempunyai pemahaman asas tentang Redis, mari belajar cara menyimpan data di dalamnya. Sebelum meneruskan, pastikan anda memasang pelayan Redis pada komputer anda. 🎜🎜

🎜1. Pasang klien Redis.py🎜🎜 🎜🎜Mula-mula, buat folder baharu yang dipanggil redis-python untuk skrip Python anda. Seterusnya, cd ke folder menggunakan Terminal Perintah dan jalankan arahan berikut untuk memasang klien Redis: 🎜🎜
redis-cli
🎜🎜Kemudian, buat fail yang dipanggil app.py dalam redis-python dan buka fail dengan editor teks. Langkah seterusnya ialah membuat skrip Python untuk menambah data ke pangkalan data. 🎜🎜

🎜2. Sambungkan klien Redis ke pelayan Redis🎜🎜 🎜🎜Pertama, dalam app.py, import redis dan tetapkan pembolehubah untuk hos pelayan dan alamat port Redis: 🎜🎜
python app.py
🎜🎜Seterusnya, tentukan data yang akan ditambahkan ke pangkalan data. Dalam contoh ini kami akan mencipta kamus Python mudah: 🎜🎜
{
  'ID': '1', 
  'name': 'Kingsley Ubah', 
  'email': 'ubahthebuilder@gmail.com', 
  'role': 'Tech Writing', 
}
🎜🎜Seterusnya, gunakan try... kecuali untuk mentakrifkan fungsi add_to_db. Dalam blok try, kami menyambung ke pelayan Redis setempat dan menyimpan kamus di atas dalam pangkalan data dan kemudian mencetak nilai pada konsol. Jika kod gagal, kami mencetak objek ralat dalam blok except. Bahagian terakhir akan menjalankan fungsi: 🎜🎜 rrreee 🎜3 Mulakan pelayan dan jalankan kod🎜 🎜🎜Mula-mula, jalankan pelayan Redis dengan melaksanakan arahan berikut pada terminal arahan: 🎜🎜 rrreee 🎜Setelah pelayan aktif, anda boleh menjalankan skrip Python menggunakan arahan berikut: 🎜
python app.py

如果一切顺利,包含用户配置文件的字典将使用 newUserOne 键添加到 Redis。此外,您应该在终端控制台上看到以下输出:

{
  'ID': '1', 
  'name': 'Kingsley Ubah', 
  'email': 'ubahthebuilder@gmail.com', 
  'role': 'Tech Writing', 
}

这就是 Redis 的全部内容!

结论

本教程仅触及使用 Python 处理数据库的皮毛。您可以从 sqlite3 模块了解更多方法,您可以在其中执行不同的数据库操作,例如更新和查询数据库。

要了解有关 redis-py 的更多信息,请立即阅读其完整文档。玩得开心!

Atas ialah kandungan terperinci Pengendalian pangkalan data dalam Python: SQLite dan Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn