Daten aus der Datenbank löschen
Die folgenden Methoden ermöglichen es Ihnen, Daten aus der Datenbank zu löschen.
Streichung
delete(each: bool = False, **kwargs) -> int
QuerySet-Ebene Löschen wird verwendet, um mehrere Datensätze gleichzeitig zu löschen.
Sie müssen entweder zuerst QuerySet filtern oder das Flag each = True angeben, um die gesamte Tabelle zu löschen.
Wenn Sie dieses Flag oder diesen Filter nicht angeben, wird ein QueryDefintionError ausgelöst.
Gibt die Anzahl der bereits gelöschten Zahlen zurück.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 | import asyncio
import databases
import ormar
import sqlalchemy
from examples import create_drop_database
DATABASE_URL = "sqlite:///test.db"
ormar_base_config = ormar.OrmarConfig(
database=databases.Database(DATABASE_URL),
metadata=sqlalchemy.MetaData(),
)
class Book(ormar.Model):
ormar_config = ormar_base_config.copy(tablename="books")
id: int = ormar.Integer(primary_key=True)
title: str = ormar.String(max_length=200)
author: str = ormar.String(max_length=100)
genre: str = ormar.String(
max_length=100,
default="Fiction",
)
@create_drop_database(base_config=ormar_base_config)
async def run_query():
await Book.objects.create(
title="Tom Sawyer", author="Twain, Mark", genre="Adventure"
)
await Book.objects.create(
title="War and Peace in Space", author="Tolstoy, Leo", genre="Fantasy"
)
await Book.objects.create(
title="Anna Karenina", author="Tolstoy, Leo", genre="Fiction"
)
# delete accepts kwargs that will be used in filter
# acting in same way as queryset.filter(**kwargs).delete()
await Book.objects.delete(genre="Fantasy") # delete all fantasy books
all_books = await Book.objects.all()
assert len(all_books) == 2
asyncio.run(run_query())
|
Die Modellmethode
Jede Modellinstanz verfügt über eine Reihe von Methoden zum Speichern, Aktualisieren oder Laden von sich selbst.
Streichung
Sie können eine Modellinstanz löschen, indem Sie die Methode delete () aufrufen.
!!!tip Lesen Sie mehr über die delete ()-Methode in Modellmethoden
Die QuerysetProxy Methode
Wenn Sie direkt auf das zugehörige Feld "ManyToMany" und "ReverseForeignKey" zugreifen, wird eine Liste der zugehörigen Modelle zurückgegeben.
Gleichzeitig wird jedoch eine Teilmenge der QuerySet-API verfügbar gemacht, sodass Sie relevante Modelle direkt aus dem übergeordneten Modell filtern, erstellen, auswählen usw. können.
Beseitigung
- Das entsprechende Modell wird gestrichen.
Löschen Sie die Beziehungen in der Datenbank.
Wenn Sie das Flag keep_reversed als Falseormar angeben, wird das betreffende Modell auch aus der Datenbank entfernt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | Klasse Album (ormar. Modell):
ormar_config = base_ormar_config. copy ()(= Grundeinheit von Ormar_config. copy)
id: int = ormar. Integer (primary_key = true)(nicht bekannt)
name: str = ormar. String (max_length = 100)[Bearbeiten | Quelltext bearbeiten]
is_best_seller: bool = ormar. Boolean (default = False)[Bearbeiten | Quelltext bearbeiten]
Klasse Track (ormar. Modell):
ormar_config = base_ormar_config. copy ()(= Grundeinheit von Ormar_config. copy)
id: int = ormar. Integer (primary_key = true)(nicht bekannt)
Album: Optional [Album]= ormar. ForeignKey (Album) Bearbeiten
title: str = ormar. String (max_length = 100)
position: int = ormar. Integer () oder
play_count: int = ormar. Integer (nullable = true)[Bearbeiten | Quelltext bearbeiten]
Album = await Album (name ="Malibu"). save () ist ein
1. Der Suchbegriff "A-Z"(
Album = Album, title ="The Bird", position = 1, play_count = 30, oder
und Save ()
Entfernen Sie den Proxy von der umgekehrten Seite
await album. tracks. remove (track1, keep_reversed = False)(await album. tracks. remove (track1, keep_reversed = False)(auf Englisch)
Der Track wurde ebenfalls geliefert
tracks = await Track. objects. all ()[Bearbeiten | Quelltext bearbeiten]
assert len (tracks)== 0
|
Aufräumen
Ein Aufruf entfernt alle relevanten Modelle auf einmal.
Auch die Beziehungen in der Datenbank werden gelöscht.
Wenn Sie das Flag keep_reversed als Falseormar angeben, wird das betreffende Modell auch aus der Datenbank entfernt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 | Klasse Album (ormar. model):
ormar_config = base_ormar_config. copy ()(= Grundeinheit von Ormar_config. copy)
id: int = ormar. Integer (primary_key = true)(nicht bekannt)
name: str = ormar. String (max_length = 100)[Bearbeiten | Quelltext bearbeiten]
is_best_seller: bool = ormar. Boolean (default = False)[Bearbeiten | Quelltext bearbeiten]
Klasse Track (ormar. Modell):
ormar_config = base_ormar_config. copy ()(= Grundeinheit von ormar_config. copy)
id: int = ormar. Integer (primary_key = true)(nicht bekannt)
Album: Optional [Album]= ormar. ForeignKey (Album) Bearbeiten
title: str = ormar. String (max_length = 100)
position: int = ormar. Integer () oder
play_count: int = ormar. Integer (nullable = true)[Bearbeiten | Quelltext bearbeiten]
Album = await Album (name ="Malibu"). save () ist ein
1. Der Suchbegriff "A-Z"(
Das Album = Album
title ="Der Vogel",
Stellung = 1,
Anzahl = 30,
und save ()
Die Tracklist (
Das Album = Album
Titel: "Das Herz steht nicht eine Chance"
Stellung = 2,
Anzahl = 20,
und Save ()
#Removes the relation only--löschen Sie ausländische Schlüssel auf Spuren
Das Album ist erschienen. tracks. clear ()
#Entfernen Sie auch die Tracks
await album. tracks. clear (keep_reversed = False)(auf Englisch)
|