Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Schnellstart erstellen Sie ein Django-Projekt, verbinden es über mssql-django mit einer SQL-Server-Datenbank, führen Sie Migrationen aus und führen grundlegende Datenoperationen mit dem Django-ORM aus.
Voraussetzungen
- Python 3.8 oder höher. Django 6.0 erfordert Python 3.12 und neuere Versionen.
- Microsoft ODBC-Treiber 17 oder 18 für SQL Server. Siehe "ODBC-Treiber herunterladen" für SQL Server.
- Eine SQL Server Instanz oder Azure SQL-Datenbank mit einer gültigen Anmeldung.
Schritt 1: Installieren von mssql-django
Erstellen Sie eine virtuelle Umgebung, und installieren Sie das Paket:
python -m venv .venv
.venv\Scripts\activate
pip install mssql-django
Schritt 2: Erstellen eines Django-Projekts
Erstellen Sie ein neues Django-Projekt und eine neue App:
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
Schritt 3: Konfigurieren der Datenbank
Bearbeiten Sie myproject/settings.py und ersetzen Sie die Standardeinstellung DATABASES.
Verbindung mit SQL Server herstellen
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
},
}
Vorsicht
Verwenden Sie TrustServerCertificate=yes nur für die lokale Entwicklung mit selbstsignierten Zertifikaten. Verwenden Sie sie nicht in der Produktion. Sie deaktiviert die Validierung der Zertifikatskette und erhöht das Risiko eines Man-in-the-Middle-Angriffs. Installieren Sie ein vertrauenswürdiges Zertifikat auf dem Server, und stellen Sie eine Verbindung mit TrustServerCertificate=no.
Herstellen einer Verbindung mit Azure SQL-Datenbank
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>.database.windows.net",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
"extra_params": "Encrypt=yes",
},
},
}
Schritt 4: Definieren eines Modells
Bearbeiten Sie myapp/models.py:
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
Fügen Sie "myapp" zu INSTALLED_APPS in settings.py hinzu:
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp",
]
Schritt 5: Ausführen von Migrationen
Generieren und Anwenden von Datenbankmigrationen:
python manage.py makemigrations myapp
python manage.py migrate
Vergewissern Sie sich, dass die myapp Migration angewendet wurde:
python manage.py showmigrations myapp
[X] 0001_initial sollte angezeigt werden. Wenn Sie [ ] 0001_initial sehen, führen Sie python manage.py migrate myapp erneut aus, bevor Sie fortfahren.
Schritt 6: Verwenden des Django ORM
Öffnen Sie die Django-Shell. Die Shell ist eine interaktive Python Sitzung mit dem geladenen Django-Projekt, angegeben durch die >>> Eingabeaufforderung.
python manage.py shell
Importieren Sie an der >>> Eingabeaufforderung das Modell:
from myapp.models import Product
Datensatz erstellen:
product = Product.objects.create(name="Widget", price=9.99)
print(f"Created: {product.name} (id={product.pk})")
Datensätze lesen:
for p in Product.objects.all():
print(f"{p.name}: ${p.price}")
Aktualisieren Sie den Datensatz:
product.price = 12.99
product.save()
Löschen Sie den Datensatz:
product.delete()
Beenden Sie die Shell mit exit(). Alternativ können Sie STRG+Z auf Windows oder STRG+D unter Linux oder macOS verwenden.
Note
Wenn Sie einen Invalid object name 'myapp_product'-Fehler erhalten, existiert die Tabelle myapp_product nicht in der Datenbank, obwohl der Django-Migrationsverlauf angibt, dass 0001_initial angewendet wurde. Beenden Sie die Shell, setzen Sie dann den Migrationsverlauf zurück und wenden Sie die Migration erneut an:
python manage.py migrate myapp zero --fake
python manage.py migrate myapp
Verwandte Inhalte
- Installieren von mssql-django
- Zuordnungen von Django-Feldern zu SQL-Server-Datentypen
- Django-Lernprogramm
- mssql-django auf GitHub