DB연결하기
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
DATABASES라는 정보를 가지고 있는 데이터베이스와 자동 연결
db.sqlite3이 만들어졌다면 제대로 한 것이다.
* VScode는 Extensions(Ctrl + shift + x)에서 SQLite Viewer를 설치해야 db.sqlite3 파일을 열어서 확인할 수 있다.
ORM???
Object Relational Mapping은 데이터 베이스를 하나의 객체(Object)덩어리로 보고, 데이터베이스를 SQL언어가 아닌 클래스로 표현하고 사용할 수 있게 해준다. DB언어라고 하면 흔하게 SQL언어라고 표현하는데, 이것은 파이썬으로 다룰 수 있게 해주는 것.
class myBakery():
bread_type = ''
bake_time = ''
price = 0
이런 클래스 형태를 데이터베이스의 형태로 만들어서 사용
장고는 기본적으로 User모델을 제공한다.
모델을 직접만드는 법
모델을 만들기 전에 어떤 기능, 어떤 속성이 들어가면 좋을지 생각해보자.
from django.db import models
class UserModel(models.Model):
class Meta: # DB테이블의 이름을 지정해주는 정보, 데이터베이스에 정보를 넣어주는 역할
db_table = "my_user"
username = models.CharField(max_length=20, null=False)
password = models.CharField(max_length=256, null=False)
bio = models.CharField(max_length=256, default='')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
모델 필드의 종류 - 해당하는 곳 각각의 정보들이 어떤 형태로 db에 들어갈지 정해준다.
문자열 : CharField, TextField
날짜/시간: DateTimeField, DateField, TimeField
숫자 : IntegerField, FloatField
다른 테이블과 연관을 지어 줄 때 : ForeignKey
makemigrations와 migrate
# 외부 프로젝트명 디렉토리에서 Terminal로 입력!!
python manage.py makemigrations
=> 데이터베이스 변경을 알려주는 명령어
=> 변경 내용을 migration파일로 만드는 명령어
python manage.py migrate
=> 변경된 데이터베이스를 반영해주는 명령어
migrate를 했다면 db.sqlite3파일에서 DB에 적용된 모델을 볼 수 있다.
'Python > Django' 카테고리의 다른 글
Django - 회원가입 기능과 CSRF 토큰 (0) | 2023.04.04 |
---|---|
Django - 템플릿 상속과 URL연결, path() 함수 (0) | 2023.04.04 |
Django - Models 만들기 (0) | 2023.04.04 |
Django - Admin기능 (0) | 2023.04.04 |
Django - 장고 프로젝트 구조 이해하기 (2) | 2023.04.04 |
댓글