Django-Modelle erstellen: Ein Leitfaden
Einleitung
Im vorherigen Tutorial „Wie Sie eine Django-App erstellen und mit einer Datenbank verbinden“ haben wir erklärt, wie man eine MySQL-Datenbank erstellt, eine Django-Anwendung startet und sie mit einer MySQL-Datenbank verbindet.
In diesem Tutorial erstellen wir die Django-Modelle, die die Felder und das Verhalten der Daten der Blog-Anwendung definieren, die wir speichern möchten. Diese Modelle bilden die Daten Ihrer Django-Anwendung auf die Datenbank ab. Django verwendet sie, um über die objektrelationale Zuordnungs-API (ORM) Datenbanktabellen zu generieren, die als „Modelle“ bezeichnet werden.
Voraussetzungen für Django-Modelle erstellen
Dieses Tutorial ist Teil der Django-Entwicklungsserie und eine Fortsetzung dieser Serie. Folgende Voraussetzungen sollten gegeben sein:
- Sie haben Django in Version 4 oder höher installiert.
- Sie haben Ihre Django-App mit einer Datenbank verbunden.
- Sie arbeiten mit einem Unix-basierten Betriebssystem, vorzugsweise einem Ubuntu 22.04 Cloud-Server.
Schritt 1 — Django-Modelle erstellen
Um der modularen Philosophie von Django gerecht zu werden, erstellen wir eine Django-App innerhalb unseres Projekts, die alle notwendigen Dateien für die Erstellung der Blog-Website enthält.
cd ~/my_blog_app
. env/bin/activate
cd blog
python manage.py startapp blogsite
Schritt 2 — Das Posts-Modell hinzufügen
Öffnen und bearbeiten Sie die Datei models.py
, um den Code für die Erstellung eines Post-Modells hinzuzufügen:
from django.db import models
from django.template.defaultfilters import slugify
from django.contrib.auth.models import User
from django.urls import reverse
class Post(models.Model):
title = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=255)
content = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
author = models.TextField()
def get_absolute_url(self):
return reverse('blog_post_detail', args=[self.slug])
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.title)
super(Post, self).save(*args, **kwargs)
class Meta:
ordering = ['created_on']
def __unicode__(self):
return self.title
Schritt 3 — Einstellungen aktualisieren
Fügen Sie die App blogsite
zur INSTALLED_APPS
-Sektion in der Datei settings.py
hinzu:
INSTALLED_APPS = [
'blogsite',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Schritt 4 — Migrationen erstellen
Erstellen Sie Migrationsdateien für die Modelle:
python manage.py makemigrations
Wenden Sie die Migrationen auf die Datenbank an:
python manage.py migrate
Schritt 5 — Datenbankschema überprüfen
Melden Sie sich bei MySQL an und überprüfen Sie, ob die Tabellen erfolgreich erstellt ist:
SHOW TABLES;
DESCRIBE blogsite_comment;
DESCRIBE blogsite_post;
Fazit zu Django-Modelle erstellen
In diesem Tutorial haben wir erfolgreich Modelle für grundlegende Funktionen in einer Blog-Webanwendung hinzugefügt. Sie haben gelernt, wie man Django-Modelle effizient erstellt und anpasst. Zudem haben Sie den Prozess von Migrationen detailliert verstanden. Diese Migrationen ermöglichen es, Datenbanktabellen aus Ihren Modellen zu generieren. Wir haben die Verbindung zwischen Django-Modellen und MySQL-Datenbanken ausführlich behandelt. Nutzen Sie dieses Wissen, um komplexere Anwendungen zu entwickeln.