Heim >Backend-Entwicklung >Python-Tutorial >Datenbankverwaltung in Python: SQLite und Redis
Im Informationszeitalter, in dem wir leben, können wir sehen, wie viele Daten die Welt austauscht. Grundsätzlich erstellen, speichern und rufen wir Daten im großen Stil ab! Es sollte doch eine Möglichkeit geben, mit all dem umzugehen – es gibt keine Möglichkeit, dass es sich ohne jegliches Management überall ausbreitet, oder? Dies ist ein Datenbankverwaltungssystem (DBMS).
Ein DBMS ist ein Softwaresystem, mit dem Sie Daten in einer Datenbank erstellen, speichern, ändern, abrufen und anderweitig bearbeiten können. Solche Systeme variieren auch in ihrer Größe, von kleinen Systemen, die nur auf Personalcomputern laufen, bis hin zu großen Systemen, die auf Großrechnern laufen.
Dieses Tutorial konzentriert sich auf Python, nicht auf Datenbankdesign. Ja, Python ist sehr gut in der Lage, mit Datenbanken zu interagieren, und das werde ich Ihnen in diesem Tutorial zeigen. Sie erfahren, wie Sie mit Python mit SQLite- und Redis-Datenbanken arbeiten.
Lass uns anfangen!
Wie oben erwähnt, ist Python in der Lage, mit Datenbanken zu interagieren. Aber wie kann es das tun? Python verwendet die sogenannte Python-Datenbank-API, um mit Datenbanken zu interagieren. Mit dieser API können wir verschiedene Datenbankverwaltungssysteme (DBMS) programmieren. Der auf Codeebene befolgte Prozess ist jedoch für verschiedene DBMS wie folgt derselbe:
SQLite ist eine Open-Source-Lösung mit vollem Funktionsumfang, eigenständig (benötigt nur wenig Unterstützung durch externe Bibliotheken), serverlos (kein Server ist zum Ausführen der Datenbank-Engine erforderlich und es handelt sich um eine lokal gespeicherte Datenbank) und ohne Konfiguration (keine Installation oder Konfiguration erforderlich). ), SQL-basiert. Ein leichtes Datenbankverwaltungssystem (das SQL-Abfragen für SQLite-Tabellen ausführen kann) und eine Datendatei zum Speichern von Daten verwendet.
Es ist erwähnenswert, dass SQLite von großen Unternehmen wie Google, Apple, Microsoft usw. verwendet wird, was es sehr zuverlässig macht. In diesem Tutorial verwenden wir SQLite für die Interaktion mit einer Datenbank, genauer gesagt verwenden wir das Modul sqlite3 in Python.
Wie oben erwähnt umfasst die Verwendung einer Datenbank fünfHauptschritte. Sehen wir uns diese Schritte in Aktion an.
Dieser Schritt wird wie folgt umgesetzt:
conn = sqlite3.connect('company.db')
Wie in der sqlite3
Dokumentation angegeben:
Um dieses Modul verwenden zu können, müssen Sie zunächst ein Connection
-Objekt erstellen, das die Datenbank darstellt.
Bitte beachten Sie im obigen Code, dass die Daten in der Datei gespeichert werden company.db
.
Der nächste Schritt bei der Arbeit mit der Datenbank besteht darin, einen Cursor zu erstellen, wie unten gezeigt:
curs = conn.cursor()
Nachdem wir eine Verbindung zur Datenbank hergestellt und den Cursor erstellt haben, können wir nun die Daten verarbeiten (mit ihnen interagieren). Mit anderen Worten: Wir können jetzt SQL-Befehle auf der Datenbank ausführen company.db
.
Angenommen, wir möchten eine neue Tabelle Mitarbeiter
in der Datenbank Firma
erstellen. In diesem Fall müssen wir einen SQL-Befehl ausführen. Dazu verwenden wir die Methode execute()
des company
中创建一个新表 employee
。在这种情况下,我们需要运行 SQL 命令。为此,我们将使用 sqlite3
模块的 execute()
-Moduls. Daher sieht die Python-Anweisung so aus:
curs.execute('创建表员工(姓名,年龄)')
Diese Anweisung führt einen SQL-Befehl aus, der eine Datei mit dem Namen employee
的表,其中包含两列(字段)name
和 age
erstellt.
Wir können jetzt einen neuen SQL-Befehl ausführen, um Daten wie unten gezeigt in die Tabelle einzufügen:
curs.execute("插入员工值('Ali', 28)")
Sie können auch mehrere Werte gleichzeitig eingeben, wie unten gezeigt:
值 = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]
In diesem Fall verwenden wir die Methode execute()
,而不是使用方法executemany()
, um die oben genannten Mehrfachwerte auszuführen.
curs.executemany('插入员工值(?,?)', value)
In diesem Schritt möchten wir die Änderungen übernehmen (festschreiben), die wir im vorherigen Schritt vorgenommen haben. Es ist ganz einfach und sieht so aus:
conn.commit()
Nachdem Sie die Aktion ausgeführt und die Änderungen übernommen haben, besteht der letzte Schritt darin, die Verbindung zu schließen:
conn.close()
Lassen Sie uns alle Schritte in einem Skript zusammenfassen. Das Programm sieht folgendermaßen aus (beachten Sie, dass wir zuerst das Modul importieren müssen):
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()
sqlite3
Wenn Sie das Skript ausführen, sollten Sie eine Datei mit dem Namen im aktuellen Verzeichnis erhalten. Laden Sie diese Datei herunter, da wir sie im nächsten Schritt verwenden werden.
company.db
6. Lass uns die Datenbank durchsuchen
company.db
Öffnen Sie die Datenbank über die Schaltfläche
Datenbank öffnenoben. In diesem Fall sollten Sie die Datenbankstruktur wie unten gezeigt erhalten:
Bitte beachten Sie, dass wir Tische aufgelistet haben
.
employee
,其中包含两个字段:name
和 age
Um zu bestätigen, dass der obige Code funktioniert und die Daten zur Tabelle hinzugefügt wurden, klicken Sie auf die Registerkarte
. Sie sollten etwa Folgendes sehen:
Sie können sehen, dass die Datenbank (
) erstellt wurde und die Daten erfolgreich zur Tabelle hinzugefügt wurden.
company
)和表(employee
Redis
Redis genannt, ist eine leistungsstarke NoSQL-Datenbank, die auch als In-Memory-Cache fungieren kann. Redis wurde von Salvatore Sanfilippo entwickelt und wird derzeit von Redis Labs gepflegt. Die Software ist in der Programmiersprache C geschrieben und Open Source (BSD-Lizenz).
Eines der bemerkenswertesten Merkmale von Redis ist der Speichermechanismus für die Datenstruktur. Sie können Daten in Redis mit denselben Datentypen wie in Python speichern (Strings, Mengen, Ganzzahlen, Listen, Wörterbücher usw.).Das macht Redis zu einer beliebten Wahl unter Python-Entwicklern.
Redis und PythonDa wir nun ein grundlegendes Verständnis von Redis haben, lernen wir, wie man Daten darin speichert. Bevor Sie fortfahren, stellen Sie sicher, dass auf Ihrem Computer ein Redis-Server installiert ist.
1. Installieren Sie den Redis.py-Client
redis-python für Ihr Python-Skript. Wechseln Sie als Nächstes mit dem Befehlsterminal in den Ordner und führen Sie den folgenden Befehl aus, um den Redis-Client zu installieren:
pip install redis
app.py in redis-python und öffnen Sie sie mit einem Texteditor. Der nächste Schritt besteht darin, ein Python-Skript zu erstellen, um Daten zur Datenbank hinzuzufügen.
2. Verbinden Sie den Redis-Client mit dem Redis-Serverapp.py und legen die Variablen für den Redis-Server-Host und die Portadresse fest: redis
import redis
redis_host = 'localhost'
redis_port = 6379
user = {
'ID': 1,
'name': 'Kingsley Ubah',
'email': 'ubahthebuilder@gmail.com',
'role': 'Tech Writing',
}
-Block, um das Fehlerobjekt zu drucken. Im letzten Teil wird die Funktion ausgeführt: try... except
定义 add_to_db
函数。在 try
块中,我们连接到本地 Redis 服务器并将上述字典存储在数据库中,然后在控制台上输出值。如果代码失败,我们会在 except
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()
3. Starten Sie den Server und führen Sie den Code aus
redis-cli
Sobald der Server aktiv ist, können Sie das Python-Skript mit dem folgenden Befehl ausführen:
python app.py
如果一切顺利,包含用户配置文件的字典将使用 newUserOne
键添加到 Redis。此外,您应该在终端控制台上看到以下输出:
{ 'ID': '1', 'name': 'Kingsley Ubah', 'email': 'ubahthebuilder@gmail.com', 'role': 'Tech Writing', }
这就是 Redis 的全部内容!
本教程仅触及使用 Python 处理数据库的皮毛。您可以从 sqlite3
模块了解更多方法,您可以在其中执行不同的数据库操作,例如更新和查询数据库。
要了解有关 redis-py 的更多信息,请立即阅读其完整文档。玩得开心!
Das obige ist der detaillierte Inhalt vonDatenbankverwaltung in Python: SQLite und Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!