이 빠른 시작에서는 Django 프로젝트를 만들고, Django ORM을 사용하여 SQL Server 데이터베이스에 mssql-django연결하고, 마이그레이션을 실행하고, 기본 데이터 작업을 수행합니다.
사전 요구 사항
- Python 3.8 이상. Django 6.0에는 Python 3.12 이상 버전이 필요합니다.
- Microsoft SQL Server용 ODBC 드라이버 17 또는 18. SQL Server ODBC 드라이버 다운로드를 참조하세요.
- 유효한 로그인이 있는 SQL Server 인스턴스 또는 Azure SQL Database.
1단계: mssql-django 설치
가상 환경을 만들고 패키지를 설치합니다.
python -m venv .venv
.venv\Scripts\activate
pip install mssql-django
2단계: Django 프로젝트 만들기
새 Django 프로젝트 및 앱을 만듭니다.
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
3단계: 데이터베이스 구성
myproject/settings.py을 편집하고 기본 DATABASES 설정을 바꾸세요.
SQL Server에 연결
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
},
}
Caution
자체 서명된 인증서를 사용하여 로컬 개발에만 사용합니다 TrustServerCertificate=yes . 프로덕션 환경에서는 사용하지 마세요. 인증서 체인 유효성 검사를 비활성화하여 중간자 공격 위험을 증가시킵니다. 서버에 신뢰할 수 있는 인증서를 설치하고 TrustServerCertificate=no로 연결합니다.
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",
},
},
}
4단계: 모델 정의
편집 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에서 INSTALLED_APPS에 "myapp" 추가:
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp",
]
5단계: 마이그레이션 실행
데이터베이스 마이그레이션 생성 및 적용:
python manage.py makemigrations myapp
python manage.py migrate
myapp 마이그레이션이 적용되었는지 확인합니다.
python manage.py showmigrations myapp
[X] 0001_initial을 봐야 합니다.
[ ] 0001_initial가 표시되면 계속하기 전에 python manage.py migrate myapp을 다시 실행하세요.
6단계: Django ORM 사용
Django 셸을 엽니다. 셸은 Django 프로젝트가 로드된 대화형 Python 세션이며, 이는 >>> 프롬프트로 표시됩니다.
python manage.py shell
프롬프트에서 >>> 모델을 가져옵니다.
from myapp.models import Product
레코드 만들기:
product = Product.objects.create(name="Widget", price=9.99)
print(f"Created: {product.name} (id={product.pk})")
레코드 읽기:
for p in Product.objects.all():
print(f"{p.name}: ${p.price}")
레코드를 업데이트합니다.
product.price = 12.99
product.save()
레코드를 삭제합니다.
product.delete()
exit()를 사용하여 셸을 종료합니다. 또는 Windows Ctrl+Z를 사용하거나 Linux 또는 macOS에서 Ctrl+D를 사용합니다.
Note
Invalid object name 'myapp_product' 오류가 발생하면 Django의 마이그레이션 기록에는 0001_initial가 적용된 것으로 되어 있어도 데이터베이스에 myapp_product 테이블이 존재하지 않습니다. 셸을 종료한 다음 마이그레이션 기록을 다시 설정하여 다시 적용합니다.
python manage.py migrate myapp zero --fake
python manage.py migrate myapp