Gyorsútmutató: Django csatlakoztatása a SQL Serverhez

Ebben a rövid útmutatóban létrehoz egy Django-projektet, csatlakoztatja egy SQL Server-adatbázishoz migrálások futtatásávalmssql-django, és alapvető adatműveleteket hajt végre a Django ORM használatával.

Prerequisites

1. lépés: Az mssql-django telepítése

Hozzon létre egy virtuális környezetet, és telepítse a csomagot:

python -m venv .venv
.venv\Scripts\activate
pip install mssql-django

2. lépés: Django-projekt létrehozása

Hozzon létre egy új Django-projektet és alkalmazást:

django-admin startproject myproject
cd myproject
python manage.py startapp myapp

3. lépés: Az adatbázis konfigurálása

Szerkessze myproject/settings.py, és cserélje le az alapértelmezett DATABASES beállítást.

Csatlakozás az SQL Serverhez

DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>",
        "PORT": "1433",
    },
}

Caution

Csak helyi fejlesztéshez használható TrustServerCertificate=yes önaláírt tanúsítványokkal. Ne használja éles környezetben. Letiltja a tanúsítványlánc érvényesítését, és növeli a középen belüli támadói kockázatot. Telepítsen egy megbízható tanúsítványt a kiszolgálón, és csatlakozzon a kiszolgálóhoz TrustServerCertificate=no.

Csatlakozás az Azure SQL Database-hez

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",
        },
    },
}

4. lépés: Modell meghatározása

myapp/models.pyszerkesztése:

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

Adja hozzá a(z) "myapp" elemet a(z) INSTALLED_APPS elemhez a(z) settings.py elemben:

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "myapp",
]

5. lépés: Áttelepítések futtatása

Adatbázis-migrálások létrehozása és alkalmazása:

python manage.py makemigrations myapp
python manage.py migrate

Ellenőrizze, hogy alkalmazták-e az myapp áttelepítést:

python manage.py showmigrations myapp

Látnia kell [X] 0001_initial. Ha megjelenik [ ] 0001_initial, futtassa python manage.py migrate myapp újra a folytatás előtt.

6. lépés: A Django ORM használata

Nyissa meg a Django-héjat. A shell egy interaktív Python-munkamenet, amelyben be van töltve a Django-projekted; ezt az >>> prompt jelzi.

python manage.py shell

A >>> promptnál importálja a modellt:

from myapp.models import Product

Rekord létrehozása:

product = Product.objects.create(name="Widget", price=9.99)
print(f"Created: {product.name} (id={product.pk})")

Rekordok olvasása:

for p in Product.objects.all():
    print(f"{p.name}: ${p.price}")

Frissítse a rekordot:

product.price = 12.99
product.save()

Rekord törlése:

product.delete()

Lépjen ki a shellből ezzel: exit() Másik lehetőségként használhatja a CtrlZ+ Windows, linuxos vagy macOS rendszeren pedig a Ctrl D billentyűkombinációt+.

Note

Ha Invalid object name 'myapp_product' hibát kap, a myapp_product tábla nem létezik az adatbázisban, annak ellenére, hogy a Django migrációs előzményei azt jelzik, hogy a(z) 0001_initial alkalmazva van. Lépjen ki a parancsértelmezőből, majd állítsa alaphelyzetbe a migrációs előzményeket, és futtassa le újra:

python manage.py migrate myapp zero --fake
python manage.py migrate myapp

Következő lépés