Rumah > Artikel > pembangunan bahagian belakang > Pengendalian pangkalan data dalam Python: SQLite dan Redis
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!
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:
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.
Seperti yang dinyatakan di atas, menggunakan pangkalan data melibatkan lima langkah utama. Mari lihat langkah-langkah ini dalam tindakan.
Langkah ini dilaksanakan seperti berikut:
conn = sqlite3.connect('company.db')
conn = sqlite3.connect('company.db')
正如 sqlite3
文档中所述:
要使用该模块,您必须首先创建一个表示数据库的 Connection
对象。
在上面的代码中,请注意数据将存储在文件 company.db
中。
使用数据库的下一步是创建游标,如下所示:
curs = conn.cursor()
连接数据库并创建游标后,我们现在就可以处理(交互)数据了。换句话说,我们现在可以在数据库 company.db
上运行 SQL 命令。
假设我们要在数据库 company
中创建一个新表 employee
。在这种情况下,我们需要运行 SQL 命令。为此,我们将使用 sqlite3
模块的 execute()
方法。因此,Python 语句将如下所示:
curs.execute('创建表员工(姓名,年龄)')
此语句将运行一个 SQL 命令,该命令将创建一个名为 employee
的表,其中包含两列(字段)name
和 age
。
我们现在可以运行一个新的 SQL 命令来在表中插入数据,如下所示:
curs.execute("插入员工值('Ali', 28)")
您还可以一次插入多个值,如下所示:
值 = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]
在这种情况下,我们将使用方法execute()
,而不是使用方法executemany()
来执行上述多个值。
curs.executemany('插入员工值(?,?)', value)
sqlite3
: Untuk menggunakan modul ini, anda mesti mencipta objek Connection
yang mewakili pangkalan data.
company.db
.
curs = conn.cursor()
🎜
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()
执行操作并提交更改后,最后一步是关闭连接:
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
的文件。下载此文件,因为我们将在下一步中使用它。
创建了数据库和表并添加了一些数据后,让我们看看 company.db
(您在上一节中下载的文件)里面有什么。为此,我们将使用一个很好的工具:DB Browser for SQLite。继续将该工具下载到您的计算机上。打开程序后,您应该看到如下所示的屏幕:
使用顶部的打开数据库按钮打开数据库,在这种情况下,您应该获得数据库结构,如下所示:
请注意,我们列出了表 employee
,其中包含两个字段:name
和 age
。
要确认上面的代码有效并且数据已添加到表中,请单击浏览数据选项卡。您应该看到类似以下内容:
可以看到,数据库(company
)和表(employee
)已经创建完成,并且数据已成功添加到表中。
远程词典服务器,简称为Redis,是一个强大的 NoSQL 数据库,也能够充当内存缓存。 Redis 由 Salvatore Sanfilippo 开发,目前由 Redis Labs 维护。该软件使用C编程语言编写,并且是开源的(BSD许可证)。
Redis 最显着的特点之一就是它的数据结构存储机制。您可以使用 Python 中的相同数据类型(字符串、集合、整数、列表、字典等)在 Redis 中存储数据。 这使得 Redis 成为 Python 开发人员的热门选择。
除了其数据结构存储机制之外,Python 开发人员还因为 Redis 拥有大量 Python 客户端而更喜欢 Redis 而不是其他 NoSQL 数据库,其中最受欢迎的选择可能是 redis-py。 Redis-py 提供了用于在 Redis 服务器中存储各种数据的内置命令。
现在我们对 Redis 有了基本的了解,让我们学习如何在其中存储数据。在继续之前,请确保您的计算机上安装了 Redis 服务器。
首先,为您的 Python 脚本创建一个名为 redis-python 的新文件夹。接下来,使用命令终端 cd 到该文件夹,然后运行以下命令来安装 Redis 客户端:
pip install redis
然后,在 redis-python 中创建一个名为 app.py 的文件,并使用文本编辑器打开该文件。下一步是创建用于将数据添加到数据库的 Python 脚本。
首先,在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
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.
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: 🎜
🎜🎜
🎜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: 🎜
🎜🎜
🎜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: 🎜
🎜🎜
🎜Anda boleh melihat bahawa pangkalan data (syarikat
) dan jadual (pekerja
) telah dibuat dan data telah berjaya ditambahkan pada meja itu.
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. 🎜🎜
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!