Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu vytvoříte projekt Django, připojíte ho k databázi SQL Server pomocí mssql-django, spustíte migrace a provedete základní operace s daty pomocí Django ORM.
Prerequisites
- Python 3.8 nebo novější Django 6.0 vyžaduje Python 3.12 a novější verze.
- Microsoft ovladač ODBC 17 nebo 18 pro SQL Server. Viz Stažení ovladače ODBC pro SQL Server.
- Instance SQL Server nebo Azure SQL Database s platným přihlášením.
Krok 1: Instalace mssql-django
Vytvořte virtuální prostředí a nainstalujte balíček:
python -m venv .venv
.venv\Scripts\activate
pip install mssql-django
Krok 2: Vytvoření projektu Django
Vytvořte nový projekt a aplikaci Django:
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
Krok 3: Konfigurace databáze
Upravte myproject/settings.py a nahraďte výchozí DATABASES nastavení.
Připojení k SQL Serveru
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
},
}
Caution
Používejte TrustServerCertificate=yes pouze pro místní vývoj s certifikáty podepsanými svým držitelem. Nepoužívejte ho v produkčním prostředí. Zakáže ověřování řetězce certifikátů a zvyšuje riziko útoku typu man-in-the-middle. Nainstalujte na server důvěryhodný certifikát a připojte se pomocí TrustServerCertificate=no.
Připojení ke službě Azure SQL Database
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",
},
},
}
Krok 4: Definování modelu
Upravte 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
Přidat "myapp" do INSTALLED_APPS v settings.py:
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp",
]
Krok 5: Spuštění migrací
Vygenerujte a použijte databázové migrace:
python manage.py makemigrations myapp
python manage.py migrate
Potvrďte, že byla použita migrace myapp:
python manage.py showmigrations myapp
Měli byste vidět [X] 0001_initial. Pokud se zobrazí [ ] 0001_initial, spusťte python manage.py migrate myapp ho znovu, než budete pokračovat.
Krok 6: Použití Django ORM
Otevřete prostředí Django. Shell je interaktivní relace Pythonu s načteným projektem Django, což označuje výzva >>>.
python manage.py shell
Na příkazovém řádku >>> importujte model:
from myapp.models import Product
Vytvoření záznamu:
product = Product.objects.create(name="Widget", price=9.99)
print(f"Created: {product.name} (id={product.pk})")
Čtení záznamů:
for p in Product.objects.all():
print(f"{p.name}: ${p.price}")
Aktualizujte záznam:
product.price = 12.99
product.save()
Odstraňte záznam:
product.delete()
Ukončete shell příkazem exit(). Alternativně můžete použít kombinaci kláves Ctrl+Z na Windows nebo Ctrl+D v Linuxu nebo macOS.
Note
Pokud se zobrazí chyba Invalid object name 'myapp_product', tabulka myapp_product v databázi neexistuje, i když historie migrací Django uvádí, že 0001_initial byla použita. Ukončete shell, potom resetujte historii migrací a znovu ji aplikujte:
python manage.py migrate myapp zero --fake
python manage.py migrate myapp
Související obsah
- Nainstalujte mssql-django
- Pole Django pro mapování typů SQL Server
- Kurz k Django
- mssql-django na GitHub