[Django] Node.js 개발자를 위한 Django REST Framework 급하게 배워보기 - 2
2023. 2. 23. 23:25ㆍ나는 이렇게 학습한다/Framework
지난 시간에 이어 오늘 정리해볼 것은 MySQL 연동이다.
Django는 기본적으로는 SQLite을 사용하도록 구성되어 있었다.
하지만, 나는 SQLite보다는 MySQL로 테스트하길 원했기 때문에 설정을 조금 바꿔주었다.
MySQL 연동
기본적인 MySQL 설치 및 세팅은 다른 블로그를 참고해주세요.
1. mysqlclient install
mysqlclient는 c언어 기반으로 만들어진 파이썬용 데이터베이서 커넥터(Databaser Connector)이다.
pip install mysqlclient
2. settings.py 재설정
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': "db_name", # db 이름
'USER': "user_name", # 로그인 유저명
'PASSWORD': "password", # 로그인 비밀번호
'HOST': "localhost",
'PORT': 3306,
}
}
주의할 점으로는 settings.py에 중요한 정보를 깃허브와 같은 공개된 장소에 올리는 것은 위험하다.
나 같은 경우는 'dotenv' 라는 파이썬 라이브러리를 사용해서 환경변수 설정을 해주었다.
자세한 사용법은 구글링 해보자..!
from pathlib import Path
import os
from dotenv import load_dotenv
load_dotenv(verbose=True)
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': "db_name",
'USER': os.getenv("DB_USERNAME"),
'PASSWORD': os.getenv("DB_PASSWORD"),
'HOST': os.getenv("DB_HOST"),
'PORT': 3306,
}
}
3. 연결 테스트
다 설정했다면 migrate를 해보자.
아무 문제 없이 성공한다면 다음과 같이 뜰 것이다.
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
No migrations to apply.
4. Model 불러오기
나 같은 경우는 MySQL에 이미 테이블이 만들어져 있었기 때문에 손수 models.py에 코드를 치지 않고
아래의 커맨드를 통해 MySQL의 테이블 구조를 insepct해서 들고왔다.
python manage.py inspectdb > models.py
그러면 이런식으로 models.py가 생성되는데 내 app 폴더에 있는 빈 models.py와 바꿔치기 해버리면 끝!
5. 연결 테스트
다 설정했다면 다시 migrate를 해보자.
아무 문제 없이 성공한다면 다음과 같이 뜰 것이다.
$ python manage.py migrate
Operations to perform:
Apply all migrations: PublicDataReader, admin, auth, contenttypes, sessions
Running migrations:
Applying PublicDataReader.0001_initial... OK
계속 작성중...
Reference
반응형
'나는 이렇게 학습한다 > Framework' 카테고리의 다른 글
[Nest.js] NestJS 컨트롤러 알아보기 - 2 (0) | 2023.03.06 |
---|---|
[Nest.js] NestJS 컨트롤러 알아보기 - 1 (0) | 2023.03.05 |
[Django] Node.js 개발자를 위한 Django REST Framework 급하게 배워보기 - 1 (0) | 2023.02.22 |
[Nest.js] package.json 설명할 수 있어? (0) | 2023.01.09 |
[Nest.js] NestJS 설치하기 (0) | 2023.01.07 |