Django에서 MySQL을 백엔드로 사용하는 공동 데이터베이스를 설정하려면, 크게 다음 3단계를 거친다.
터미널에서 가상환경이 활성화된 상태로 아래 명령어 실행:
pip install mysqlclient
settings.py
데이터베이스 설정# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # MySQL 사용
'NAME': 'your_database_name', # 생성해둔 DB 이름
'USER': 'your_mysql_user', # MySQL 사용자
'PASSWORD': 'your_mysql_password', # 비밀번호
'HOST': 'localhost', # MySQL 호스트
'PORT': '3306', # MySQL 포트
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
},
}
}
your_database_name
데이터베이스를 생성해두기mysql> CREATE DATABASE your_database_name CHARACTER SET utf8mb4;
ERD에 맞춰 models.py
를 작성합니다. 예를 들어, 앱 이름이 overview
라면 overview/models.py
:
## ERD를 적용하여 모델 정의한 부분
from django.db import models
class User(models.Model):
user_id = models.CharField(max_length=20, primary_key=True)
nickname = models.CharField(max_length=20)
class Repository(models.Model):
repo_id = models.AutoField(primary_key=True)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='repositories')
repo_content = models.TextField()
class Contribution(models.Model):
con_id = models.AutoField(primary_key=True)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='contributions')
con_content = models.TextField()
AutoField
를 사용해 PK를 자동 증가하도록 했습니다.INSTALLED_APPS
에 overview
포함 여부 재확인settings.py
의 INSTALLED_APPS
에
...
"overview",
...
가 정확히 들어가 있어야 합니다.