Heim Backend-Entwicklung Python-Tutorial Einführung in gängige ORM-Operationsbeispiele in Django

Einführung in gängige ORM-Operationsbeispiele in Django

Sep 15, 2017 am 10:50 AM
django 介绍 实例

Der folgende Editor bietet Ihnen eine detaillierte Erklärung häufig verwendeter ORM-Operationen in Django. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick auf

Django-Prozess:

1 Erstellen Sie ein Django-Projekt: django-admin startproject projectname

2 Erstellen Sie eine Anwendung: python manage.py startapp app name

3 Erstellen Sie eine Zuordnungsbeziehung zwischen URL und Ansichtsfunktion im Controller (urls.py) (Eins-zu-eins-Korrespondenz)

4 Erstellen Sie eine Ansichtsfunktion, vervollständigen Sie den Logikcode

5 Holen Sie sich das Sammlungsobjekt aus der Datenbank

5 Betten Sie die Datenbankvariablen in die Vorlage zum Rendern ein (Rendermethode)

6 Geben Sie die gerenderte HTML-Seite an den Client zurück

URL: Protokoll+Domänenname+Port+Pfad

Protokoll: http
Domänenname: www.cnblogs. com
Port: 80
Pfad: yuanchenqi/articles/6811632.html
Daten: a=1

Der reguläre Ausdruck in der URL-Konfiguration entspricht dem Pfadteil einer URL

TEMPALTE (Vorlage): HTML-Code + Logiksteuercode

Syntax der Logiksteuerung: {{}} Rendering-Variablenfilter: {{var|method:parameter}}

{% %} Rendering-Tags
{% if %}
{% for %}
{% url %}
{% url %}

Benutzerdefinierter Filter und Simpletag:

(1) Templatetags-Modul in der App erstellen (erforderlich)

(2) Erstellen Sie eine beliebige .py-Datei, z als: my_tags.py

aus Django-Importvorlage
register = template.Library()
@register.filter
def filter_multi(v1,v2):
return v1 * v2

(3) Erstellen Sie eine beliebige .py-Datei, wie zum Beispiel: my_tags.py

Importieren Sie die zuvor erstellte my_tags.py in die HTML-Datei mit dem benutzerdefinierten simple_tag und Filter: {% Load My_Tags %}

(4) Verwenden Sie simple_tag und Filter:

{% Load xxx %} #Erste Zeile
# num= 12
{ { num|filter_multi:2 }} #24

Zusammenfassung:

Filter: can Akzeptieren Sie nur einen Parameter. Sie können jedoch if-Anweisungen wie

verwenden. simpletag: kann mehrere Parameter akzeptieren, Sie können jedoch keine if-Anweisungen wie

verwenden ORM:

Beziehung zwischen Tabellen:

Eins-zu-viele-Fremdschlüsselfeld muss in der Untertabelle (Eins-zu-viele-Tabelle) Fremdschlüssel sein

Many-to-many in Die dritte Tabelle wird durch Hinzufügen eindeutiger Einschränkungen auf der Grundlage von zwei Foreign KEY

Eins-zu-eins-Fremdschlüsselfeldern implementiert.

Verwenden Sie die MySQL-Methode

1 Ändern Sie die Datenbankkonfiguration der Einstellungsdatei

2 Ändern Sie die Treiberkonfiguration in der __init__-Datei

ORM-zu-SQL-Konfiguration

Konfiguration der Protokollierungseinstellungen

Table.object.filter(): Was Sie erhalten, ist ein Sammlungsobjekt wie [obj1, obj2]

Table.object.get(): Was erhalten wird, ist ein Modellobjekt

Eins-zu-viele-Hinzufügen eines Datensatzes:

# Methode 1:

# Book.objects.create(id=1,title="python",publication_date="2017-03-04",price=88.8,publisher_id=1)

#Methode 2

p1=Publisher.objects.get(name="Renmin University Press")
Book.objects.create(id=2,title="python",publication_date="2017-05-04" ,Preis=98,8, Herausgeber=p1)

Erstellen Sie eine Viele-zu-Viele-Beziehung in der Datei models.py

authors=models.ManyToManyField("Author" ) #Many-to-many, wenn die Tabelle in ist. Sie müssen unten Anführungszeichen hinzufügen

Many-to-many-Addition

ManyToMany hat nur eine Möglichkeit zum Hinzufügen :

book.authors.add(*[author1 ,author2])
book.authors.remove(*[author1,author2])

Hinweis: Verstehen Sie book_obj. Herausgeber

book_obj.authors

Selbstgebauter dritter Tisch

Klasse Book2Author(models.Model):
author=models .ForeignKey("Author")
Book= models.ForeignKey ("Book")
# Dann gibt es noch einen anderen Weg:
author_obj=models.Author.objects.filter(id=2)[0]
book_obj =models.Book.objects.filter(id =3)[0]

s=models.Book2Author.objects.create(author_id=1,Book_id=2)
s.save ()
s=models.Book2Author(author=author_obj ,Book_id=1)
s.save()

.value und .value_list betreiben das Buchtabellenbuch

#Das Ergebnis der Verwendung von Wert ist kein Objekt, sondern ein Objekt. Das Ergebnis eines Felds oder Attributs ist ebenfalls querySet

ret1=Book.objects.values('title')
ret1_list = Book.objects.values_list('title')
print('ret1 is : ',ret1) #Das Ergebnis ist: ret1 is :
print(ret1_list) #Das Ergebnis ist die Liste in querySet

Der Unterschied zwischen Aktualisieren und Speichern bei Änderungsvorgängen:

Update setzt nur die angegebenen Felder und Speichern legt alle Felder fest, sodass die Aktualisierung effizienter ist

Abfrage:

Erweiterter Inhalt

# Abfragebezogene API:

# <1>filter(**kwargs): Es enthält Objekte, die den angegebenen Filterbedingungen entsprechen

# <2>all(): Alle Ergebnisse abfragen

# < ;3>get(**kwargs): Gibt Objekte zurück, die den angegebenen Filterbedingungen entsprechen. Es gibt nur ein zurückgegebenes Ergebnis. Wenn mehr als ein Objekt vorhanden ist oder keines, das den Filterbedingungen entspricht, wird ein Fehler ausgegeben.

#-----------Die folgenden Methoden werden alle zum Verarbeiten der Abfrageergebnisse verwendet: wie zum Beispiel Objekte.filter.values()--------

# <4>values(*field): Gibt ein ValueQuerySet zurück – ein spezielles QuerySet. Nach der Ausführung erhalten Sie keine Reihe modellinstanziierter Objekte, sondern eine iterierbare Wörterbuchsequenz

# < 5>exclude(**kwargs): Es enthält Objekte, die nicht den angegebenen Filterbedingungen entsprechen

# <6>order_by(*field): Sortieren Sie die Abfrageergebnisse

# < 7>reverse(): Sortiert die Abfrageergebnisse umgedreht

# <8>distinct(): Doppelte Datensätze aus den zurückgegebenen Ergebnissen entfernen

# <9> ;values_list(*field): Es ist sehr ähnlich zu „values()“. Es gibt eine Tupelsequenz zurück und „values“ gibt eine Wörterbuchsequenz zurück.

# <10>count(): Gibt Übereinstimmungen in der Datenbank zurück. Die Anzahl der Objekte in der Abfrage (QuerySet).

# <11>first(): Gibt den ersten Datensatz zurück

# <12>last(): Gibt den letzten Datensatz zurück

# <13> (): Wenn das QuerySet Daten enthält, gibt es True zurück, andernfalls gibt es False

zurück

Das obige ist der detaillierte Inhalt vonEinführung in gängige ORM-Operationsbeispiele in Django. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Django vs. Flask: Eine vergleichende Analyse von Python-Web-Frameworks Jan 19, 2024 am 08:36 AM

Django und Flask sind beide führend bei Python-Web-Frameworks und haben beide ihre eigenen Vorteile und anwendbaren Szenarien. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. Entwicklungseinführung Django ist ein Web-Framework mit vollem Funktionsumfang, dessen Hauptzweck darin besteht, schnell komplexe Webanwendungen zu entwickeln. Django bietet viele integrierte Funktionen wie ORM (Object Relational Mapping), Formulare, Authentifizierung, Verwaltungs-Backend usw. Diese Funktionen ermöglichen es Django, große Mengen zu verarbeiten

Vor- und Nachteile des Django Framework: Alles, was Sie wissen müssen Vor- und Nachteile des Django Framework: Alles, was Sie wissen müssen Jan 19, 2024 am 09:09 AM

Django ist ein vollständiges Entwicklungsframework, das alle Aspekte des Webentwicklungslebenszyklus abdeckt. Derzeit ist dieses Framework eines der beliebtesten Web-Frameworks weltweit. Wenn Sie vorhaben, mit Django Ihre eigenen Webanwendungen zu erstellen, müssen Sie die Vor- und Nachteile des Django-Frameworks verstehen. Hier finden Sie alles, was Sie wissen müssen, einschließlich spezifischer Codebeispiele. Vorteile von Django: 1. Schnelle Entwicklung – Djang kann Webanwendungen schnell entwickeln. Es bietet eine umfangreiche Bibliothek und interne

So aktualisieren Sie die Django-Version: Schritte und Überlegungen So aktualisieren Sie die Django-Version: Schritte und Überlegungen Jan 19, 2024 am 10:16 AM

So aktualisieren Sie die Django-Version: Schritte und Überlegungen, spezifische Codebeispiele erforderlich. Einführung: Django ist ein leistungsstarkes Python-Web-Framework, das kontinuierlich aktualisiert und aktualisiert wird, um eine bessere Leistung und mehr Funktionen bereitzustellen. Für Entwickler, die ältere Versionen von Django verwenden, kann die Aktualisierung von Django jedoch einige Herausforderungen mit sich bringen. In diesem Artikel werden die Schritte und Vorsichtsmaßnahmen zum Aktualisieren der Django-Version vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Sichern Sie die Projektdateien, bevor Sie Djan aktualisieren

PyCharm-Einsteigerhandbuch: Umfassende Analyse von Ersetzungsfunktionen PyCharm-Einsteigerhandbuch: Umfassende Analyse von Ersetzungsfunktionen Feb 25, 2024 am 11:15 AM

PyCharm ist eine leistungsstarke integrierte Python-Entwicklungsumgebung mit umfangreichen Funktionen und Tools, die die Entwicklungseffizienz erheblich verbessern können. Unter diesen ist die Ersetzungsfunktion eine der im Entwicklungsprozess häufig verwendeten Funktionen, die Entwicklern helfen kann, den Code schnell zu ändern und die Codequalität zu verbessern. In diesem Artikel wird die Ersetzungsfunktion von PyCharm ausführlich vorgestellt, kombiniert mit spezifischen Codebeispielen, um Anfängern zu helfen, diese Funktion besser zu beherrschen und zu verwenden. Einführung in die Ersetzungsfunktion Die Ersetzungsfunktion von PyCharm kann Entwicklern dabei helfen, bestimmten Text im Code schnell zu ersetzen

Detaillierte Einführung in die Funktionen des Samsung S24ai Detaillierte Einführung in die Funktionen des Samsung S24ai Jun 24, 2024 am 11:18 AM

2024 ist das erste Jahr der KI-Mobiltelefone. Dank der intelligenten KI-Technologie können unsere Mobiltelefone effizienter und bequemer genutzt werden. Kürzlich hat die zu Beginn des Jahres erschienene Galaxy S24-Serie ihr generatives KI-Erlebnis noch einmal verbessert. Werfen wir einen Blick auf die detaillierte Funktionseinführung unten. 1. Umfassende Stärkung der generativen KI. Die Samsung Galaxy S24-Serie hat durch die Stärkung der Galaxy AI viele intelligente Anwendungen hervorgebracht. Diese Funktionen sind tief in Samsung One UI6.1 integriert, sodass Benutzer jederzeit ein komfortables intelligentes Erlebnis erhalten Verbesserung der Leistung von Mobiltelefonen. Zu den Highlights der Galaxy S24-Serie gehört die Sofortsuchfunktion, die Nutzer einfach gedrückt halten müssen

Ist Django Front-End oder Back-End? Hör zu! Ist Django Front-End oder Back-End? Hör zu! Jan 19, 2024 am 08:37 AM

Django ist ein in Python geschriebenes Webanwendungs-Framework, das Wert auf schnelle Entwicklung und saubere Methoden legt. Obwohl Django ein Web-Framework ist, müssen Sie zur Beantwortung der Frage, ob Django ein Front-End oder ein Back-End ist, ein tiefes Verständnis der Konzepte von Front-End und Back-End haben. Das Front-End bezieht sich auf die Schnittstelle, mit der Benutzer direkt interagieren, und das Back-End bezieht sich auf serverseitige Programme. Sie interagieren mit Daten über das HTTP-Protokoll. Wenn das Front-End und das Back-End getrennt sind, können die Front-End- und Back-End-Programme unabhängig voneinander entwickelt werden, um Geschäftslogik bzw. interaktive Effekte sowie den Datenaustausch zu implementieren.

So verwenden Sie das Django-Framework zum Erstellen eines Projekts in PyCharm So verwenden Sie das Django-Framework zum Erstellen eines Projekts in PyCharm Feb 19, 2024 am 08:56 AM

Tipps zum Erstellen von Projekten mit dem Django-Framework in PyCharm, die spezifische Codebeispiele erfordern. Django ist ein leistungsstarkes Python-Web-Framework, das eine Reihe von Tools und Funktionen für die schnelle Entwicklung von Webanwendungen bereitstellt. PyCharm ist eine in Python entwickelte integrierte Entwicklungsumgebung (IDE), die eine Reihe praktischer Funktionen und Tools zur Steigerung der Entwicklungseffizienz bietet. Durch die Kombination von Django und PyCharm können Projekte schneller und bequemer erstellt werden

Einführung in die Fähigkeiten und Eigenschaften von Hua Yishan Heart of the Moon Lu Shu Einführung in die Fähigkeiten und Eigenschaften von Hua Yishan Heart of the Moon Lu Shu Mar 23, 2024 pm 05:30 PM

In Hua Yishan Heart Moon ist Lu Shu ein SSR-Star. Er ist als Single-Target-Backline-Spieler positioniert und verfügt über eine sehr beeindruckende kritische Trefferquote. Hier ist, was ich Ihnen mitgebracht habe Schauen Sie sich die Einführung in die Fähigkeiten und Eigenschaften von Hua Yishan Heart of the Moon Lu Shu an. Berühmtheitsmerkmale Berühmtheitsfähigkeiten 1. Lu Ming Shuzhong Fähigkeitsbeschreibung: Lu Shu wurde in Qiongqihui in Shuzhong geboren. Er praktiziert seit seiner Kindheit Kampfkunst und verfügt über herausragende Kampfkunstfähigkeiten. Verursacht Grundangriffsschaden in Höhe von 100 % der Angriffskraft des Gegners in der hinteren Reihe und verringert die Wut des Ziels um 10 Punkte. Fertigkeitsattribute: Stufe 2: Der Grundangriffsschaden wurde auf 105 % erhöht. Stufe 2: Der Grundangriffsschaden wird auf 110 % erhöht und die Wut des Ziels wird um 15 Punkte verringert. Stufe 2: Der Schaden des Basisangriffs wurde auf 115 % erhöht. Stufe 2: Der Grundangriffsschaden wird auf 120 % erhöht und die Wut des Ziels wird um 20 Punkte verringert. Level 2: Basisangriff

See all articles