Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta bir Django projesi oluşturur, mssql-django kullanarak projeyi bir SQL Server veritabanına bağlar, geçişleri çalıştırır ve Django ORM ile temel veri işlemleri gerçekleştirirsiniz.
Prerequisites
- Python 3.8 veya üzeri. Django 6.0, Python 3.12 ve sonraki sürümleri gerektirir.
- Microsoft SQL Server için ODBC Sürücüsü 17 veya 18. bkz. SQL Server için ODBC Sürücüsünü İndirme.
- Geçerli oturum açma bilgilerine sahip bir SQL Server örneği veya Azure SQL Veritabanı.
1. Adım: mssql-django'yu yükleme
Bir sanal ortam oluşturun ve paketi yükleyin:
python -m venv .venv
.venv\Scripts\activate
pip install mssql-django
2. Adım: Django projesi oluşturma
Yeni bir Django projesi ve uygulaması oluşturun:
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
3. Adım: Veritabanını yapılandırma
myproject/settings.py öğesini düzenleyin ve varsayılan DATABASES ayarını değiştirin.
SQL Server’a bağlanma
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
},
}
Caution
TrustServerCertificate=yes yalnızca kendinden imzalı sertifikalarla yerel geliştirme için kullanın. Üretimde kullanmayın. Sertifika zinciri doğrulamasını devre dışı bırakır ve ortadaki saldırgan riski artırır. Sunucuya güvenilir bir sertifika yükleyin ve ile TrustServerCertificate=nobağlanın.
Azure SQL Veritabanı’na bağlanma
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. Adım: Model tanımlama
Düzenle 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
settings.py içinde INSTALLED_APPS öğesine "myapp" ekleyin:
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp",
]
5. Adım: Geçişleri çalıştırma
Veritabanı geçişleri oluşturma ve uygulama:
python manage.py makemigrations myapp
python manage.py migrate
myapp geçişinin uygulandığını onaylayın:
python manage.py showmigrations myapp
ifadesini görmeniz [X] 0001_initialgerekir.
[ ] 0001_initial görürseniz, devam etmeden önce python manage.py migrate myapp öğesini yeniden çalıştırın.
6. Adım: Django ORM'yi kullanma
Django kabuğunu açın. Shell, Django projenizin yüklendiği ve >>> istemiyle gösterilen etkileşimli bir Python oturumudur.
python manage.py shell
>>> isteminde modeli içeri aktarın:
from myapp.models import Product
Kayıt oluşturma:
product = Product.objects.create(name="Widget", price=9.99)
print(f"Created: {product.name} (id={product.pk})")
Kayıtları okuyun:
for p in Product.objects.all():
print(f"{p.name}: ${p.price}")
Kaydı güncelleştirin:
product.price = 12.99
product.save()
Kaydı silin:
product.delete()
Kabuktan exit() ile çıkın. Alternatif olarak, Windows üzerinde Ctrl+Z veya Linux veya macOS'ta Ctrl+D kullanın.
Note
Invalid object name 'myapp_product' hatasını alırsanız, Django'nun geçiş geçmişi 0001_initial uygulanmış olarak gösterse de myapp_product tablosu veritabanında mevcut değildir. Shell'den çıkın, ardından migration geçmişini sıfırlayın ve yeniden uygulayın:
python manage.py migrate myapp zero --fake
python manage.py migrate myapp
İlgili içerik
- mssql-django yükleme
- Django alanlarından SQL Server türlerine eşlemeler
- Django öğreticisi
- GitHub üzerinde mssql-django