Heim > Artikel > Backend-Entwicklung > ORM-Framework Tortoise ORM in Python in der Praxis
Tortoise ORM ist ein asynchrones ORM-Framework, das auf der Python-Sprache basiert und zur Verwaltung relationaler Datenbanken in asynchronen Python-Anwendungen verwendet werden kann.
In diesem Artikel erfahren Sie, wie Sie mit dem Tortoise ORM-Framework Daten erstellen, lesen, aktualisieren und löschen. Außerdem erfahren Sie, wie Sie einfache und komplexe Abfragen aus einer relationalen Datenbank durchführen.
Vorbereitung
Bevor Sie mit diesem Tutorial beginnen, müssen Sie Python installieren (Python3.6+ wird empfohlen) und das Tortoise ORM-Framework installieren.
Sie können das Tortoise ORM-Framework über pip mit dem folgenden Befehl installieren:
pip install tortoise-orm
Als nächstes richten wir die Datenbank und die Modellstruktur ein.
Erstellen Sie eine Datenbankverbindung
Um Tortoise ORM zum Ausführen von Datenbankoperationen zu verwenden, muss zunächst eine Verbindung zur Datenbank hergestellt werden. In diesem Tutorial verwenden wir eine SQLite-Datenbank.
Tortoise ORM verwendet Umgebungsvariablen oder .config-Dateien, um Datenbankverbindungsinformationen zu verwalten. Erstellen Sie eine Datei mit dem Namen .env
und die folgende Konfiguration, um eine Datenbankverbindung herzustellen. .env
的文件和以下配置,可以实现数据库连接。
DATABASE_URL=sqlite://db.sqlite3
其中db.sqlite3
是你所要创建的新数据库的文件名。
同时,我们还需要在代码中使用函数来初始化Tortoise ORM:
import os from dotenv import load_dotenv from tortoise import Tortoise # 加载环境变量 load_dotenv() async def init_db(): await Tortoise.init(config={ 'connections': { 'default': os.getenv('DATABASE_URL') }, 'apps': { 'models': { 'models': ['app.models',], 'default_connection': 'default' } } }) await Tortoise.generate_schemas()
在上面的代码中我们使用环境变量获取数据库连接信息,并传递给Tortoise ORM进行初始化。接着调用Tortoise.generate_schemas()
方法来为所定义的模型生成对应的数据表。
在完成上述操作后,我们就可以开始创建模型。
创建模型
在本教程中,我们将创建一个简单的博客模型,该模型包含标题、内容、创建时间、更新时间和作者。
from tortoise import fields from tortoise.models import Model class Blog(Model): id = fields.IntField(pk=True) title = fields.CharField(max_length=100) content = fields.TextField() created_at = fields.DatetimeField(auto_now_add=True) updated_at = fields.DatetimeField(auto_now=True) author = fields.CharField(max_length=100)
在上面的代码的Blog模型中,我们使用Model
基类并创建了一些字段id
、title
、content
、created_at
、updated_at
和author
。pk=True
指明了id
字段是主键。auto_now_add=True
和auto_now=True
分别指明了created_at
和updated_at
字段应该在创建和更新时自动更新。
现在,我们已经成功定义了一个模型,接下来学习如何使用Tortoise ORM进行CRUD操作。
读取和创建数据
使用Tortoise ORM读取和创建数据非常简单,以下是一些示例代码:
from app.models import Blog # 创建一个新博客 blog = await Blog.create(title='Tortoise ORM', content='使用Tortoise ORM操作数据库非常方便', author='Alice') # 读取所有博客 blogs = await Blog.all() for blog in blogs: print(blog.title) # 根据标题读取指定博客 blog = await Blog.get(title='Tortoise ORM') print(blog.content)
在上面的代码中,我们使用了Blog.create()
方法创建了一个新博客,使用Blog.all()
方法读取了所有博客,并使用Blog.get()
方法根据标题读取了指定的博客。
更新和删除数据
Tortoise ORM也提供了更新和删除数据的方法。以下是一些示例代码:
# 更新博客的内容 blog.content = 'Tortoise ORM提供了丰富的API来管理数据库' await blog.save() # 删除指定的博客 await Blog.filter(title='Tortoise ORM').delete()
在上面的代码中,我们使用save()
方法更新了博客的内容,并使用filter()
和delete()
方法根据标题删除了指定的博客。
执行复杂查询
除了基本的CRUD操作,Tortoise ORM还允许执行复杂的查询。以下是一些示例:
# 使用where子句查询特定日期创建的博客 blogs = await Blog.filter(created_at__date='2021-07-12').all() # 使用order_by子句将博客按更新日期升序排列 blogs = await Blog.all().order_by('updated_at') # 连接多个过滤器查询具有特定条件的博客 blogs = await Blog.all().filter(title__contains='ORM', author__icontains='Alice')
在上面的代码中,我们使用了filter()
、all()
和order_by()
方法结合一些查询参数,例如。created_at__date
、title__contains
和author__icontains
rrreee
db.sqlite3
der Dateiname der neuen Datenbank ist, die Sie erstellen möchten. Gleichzeitig müssen wir auch eine Funktion im Code verwenden, um Tortoise ORM zu initialisieren: rrreee
Im obigen Code verwenden wir Umgebungsvariablen, um die Datenbankverbindungsinformationen abzurufen und sie zur Initialisierung an Tortoise ORM zu übergeben. Rufen Sie dann die MethodeTortoise.generate_schemas()
auf, um die entsprechende Datentabelle für das definierte Modell zu generieren. 🎜🎜Nach Abschluss der oben genannten Vorgänge können wir mit der Erstellung des Modells beginnen. 🎜🎜Erstellen Sie ein Modell🎜🎜In diesem Tutorial erstellen wir ein einfaches Blog-Modell, das Titel, Inhalt, Erstellungszeit, Aktualisierungszeit und Autor enthält. 🎜rrreee🎜Im Blog-Modell des obigen Codes verwenden wir die Basisklasse Model
und erstellen einige Felder id
, title
, Inhalt
, erstellt_at
, aktualisiert_at
und Autor
. pk=True
gibt an, dass das Feld id
der Primärschlüssel ist. auto_now_add=True
und auto_now=True
geben an, dass die Felder created_at
und updated_at
automatisch aktualisiert werden sollen, wenn sie erstellt und aktualisiert werden jeweils. . 🎜🎜Nachdem wir nun erfolgreich ein Modell definiert haben, lernen wir, wie man Tortoise ORM für CRUD-Operationen verwendet. 🎜🎜Daten lesen und erstellen🎜🎜Das Lesen und Erstellen von Daten mit Tortoise ORM ist sehr einfach. Hier ist ein Beispielcode: 🎜rrreee🎜Im obigen Code haben wir Blog.create()
verwendet. Die Methode erstellt ein neues Blog, verwendet die Methode Blog.all()
, um alle Blogs zu lesen, und verwendet die Methode Blog.get()
, um das angegebene Blog basierend auf dem Titel zu lesen. . 🎜🎜Daten aktualisieren und löschen🎜🎜Tortoise ORM bietet auch Methoden zum Aktualisieren und Löschen von Daten. Hier ist ein Beispielcode: 🎜rrreee🎜 Im obigen Code haben wir den Inhalt des Blogs mit der Methode save()
aktualisiert und filter()
und Die Methode delete()
löscht das angegebene Blog basierend auf dem Titel. 🎜🎜Komplexe Abfragen ausführen🎜🎜Zusätzlich zu den grundlegenden CRUD-Operationen ermöglicht Tortoise ORM auch die Ausführung komplexer Abfragen. Hier sind einige Beispiele: 🎜rrreee🎜Im obigen Code haben wir die Methoden filter()
, all()
und order_by()
verwendet Kombiniert mit einigen Abfrageparametern, z. created_at__date
, title__contains
und author__icontains
usw., um komplexe Abfragen durchzuführen. 🎜🎜Fazit🎜🎜In diesem Tutorial haben wir gelernt, wie man das Tortoise ORM-Framework verwendet, um CRUD-Operationen zu implementieren, die Datenbank zu initialisieren und Modelle zu erstellen sowie komplexe Datenbankabfragen durchzuführen. Wie wir sehen, macht Tortoise ORM die Verwaltung von Datenbanken in asynchronen Python-Anwendungen sehr einfach und intuitiv. 🎜Das obige ist der detaillierte Inhalt vonORM-Framework Tortoise ORM in Python in der Praxis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!