์ด๋ฒ ๋จ๊ณ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์นํ๊ณ ๋ชจ๋ธ์ ์ ์/์์ฑํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ํ์ผ์ธ mysite/settings.py๋ฅผ ํ์ธํด๋ด ๋๋ค :)
Django์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ SQLite๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ต์ ์งํํ์ง๋ง, ์ค ์ด์ ํ๊ฒฝ์์๋ postgresql๊ณผ ๊ฐ์ ์์ ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฒ์๋ถํฐ ์ฌ์ฉํ๋๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
์ด์ ์งํํด๋ด ์๋ค ๊ณ ๊ณ !!๐ง๐ป๐ฉ๐ป
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ
๋จผ์ , mysite/settings.py ํ์ผ์ ์ดํด๋ด ์๋ค!
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ๋ณด๊ฐ ๋ค์ด์์ต๋๋ค. ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ง๊ธ์ ๊ธฐ๋ณธ์ ์ธ ๋์ ๋ฉ์ปค๋์ฆ๋ง ์ดํด๋ณผ ์์ ์ด๋ฏ๋ก ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ SQLite๋ฅผ ์ฌ์ฉํฉ๋๋ค :)
Language_code์ Time_zone์ ์๋ง๊ฒ ๋ฐ๊ฟ์ค์๋ค. ;)
LANGUAGE_CODE = 'ko-KR'
TIME_ZONE = 'Asia/Seoul'
์ด์ , ๋จผ์ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค
๋จผ์ , ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค. (pycharm ์ผ์ชฝ ์๋ ํฐ๋ฏธ๋์์ ์คํํ ์์์ต๋๋ค)
python manage.py migrate
manage.py ๋ ์ฌ๋ฌ๊ฐ์ง ๊ด๋ฆฌ ๋ช
๋ น์ด๋ฅผ ์ ๊ณตํ๋ ๋ช
๋ น์ด ์ ํธ๋ฆฌํฐ์
๋๋ค.
python manage.py migrate ๋ช
๋ น์ด๋ mysite/settings.py ํ์ผ์ INSTALLED_APPS ์ DATABASES ์ค์ ์ ํ์ธํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ์์ฑํฉ๋๋ค.
์๋ ์ฒ๋ผ ๋์ค๋ฉด ์ฑ๊ณต์ ๋๋ค :)
์ด์ Django ์คํ์ ํ์ํ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์์ฑ ์๋ฃ๋์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ์ APP์์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ์์ฑํฉ๋๋ค.
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ(์คํค๋ง) ์ ์/์์ฑ
์ด๋ฒ ๋จ๊ณ์์๋ APP์์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ(์คํค๋ง)๋ฅผ ์ ์ํ๊ณ ์์ฑํ๋ ๋จ๊ณ์ ๋๋ค.
๋จผ์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 2๊ฐ์ ํ๋๊ฐ ํ์ํฉ๋๋ค. ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ํ ์ด๋ธ์ ๋ง๋ค ์์ ์ ๋๋ค :)
first_app/models.py ํ์ผ์ ์๋์ฒ๋ผ ์์ฑํฉ๋๋ค.
models.py ํ์ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค๊ฒ ๋ค๋ผ๋ ์ ์๋ฅผ ํด์ฃผ๋ ๊ณผ์ ์
๋๋ค.
์๋ ์ฝ๋๋ฅผ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํ์ธ์!
import datetime
from django.db import models
# Create your models here.
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
์ด์ first_app/models.py์ ๋ฐ์ดํฐ์ ์คํค๋ง๊ฐ ์ ์ ๋์๋ค๋๊ฒ์ ๋ฉ์ธ ํ๋ก์ ํธ์ ์๋ ค์ค์๋ค.
mysite/settings.pyํ์ผ์ ๋ค์ ์ด์ด์ค๋ค์, INSTALLED_APPS ์ first_app์ ์ถ๊ฐํฉ๋๋ค.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'first_app.apps.FirstAppConfig',
]
์ด์ ๋๋ฒ์งธ ๋ช ๋ น์ด๋ฅผ ์คํํฉ์๋ค!
python manage.py makemigrations first_app
first_app ๋ถ๋ถ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑํด์ค๋๋ค. ์ฌ๊ธฐ๊น์ง ์งํ ํ์ ์ first_app/migrations ํด๋์ 0001_initial.py๊ฐ ์์ฑ๋ฉ๋๋ค. ํ์ผ์ ์ด์ด๋ณด๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ์ ํ์ํ ๋ถ๋ถ์ด ์ ์ ๋์ด์์ต๋๋ค.
์ด ํ์ผ๋ค์ด ๋ฐ์ ๋๋๋ก ๋ง์ง๋ง ๋ช ๋ น์ด๋ฅผ ์คํํด์ค๋๋ค.
python manage.py migrate
๋ช ๋ น์ด ์คํ์ด ์๋ฃ๋๋ฉด ์๋์ ๊ฐ์ด ์ ์์ ์ผ๋ก ์ ์ฉ๋์๋ค๋ ๋ด์ฉ์ด ์ถ๋ ฅ๋ฉ๋๋ค :)
์ฌ๊ธฐ๊น์ง ์งํํ์ จ๋ค๋ฉด ์๋ฃ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ํ๊ณ ์์ฑํ๋ ๊ณผ์ ๊น์ง ์๋ฃ ๋์์ต๋๋ค :)
๋ ๋จ๊ณ๋ฅผ ๋ชจ๋ ๋ง์น์
จ๋ค๋ฉด, ์ด๊ฒ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๊ฐ ๋ง๋ค์ด์ง๊ฑด์ง ๊ถ๊ธํ์ค ๊ฒ๋๋ค.
๋์ผ๋ก ํ์ธํด๋ด
์๋ค.
์๋ ์บก์ณ ์ฌ์ง์ SQLite Client๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ฒฐํ์ฌ ํ์ธํ ๊ฒฐ๊ณผ์ ๋๋ค. (SQLiteClient์ค์น์๋ด)
1๋จ๊ณ์์ ์์ฑํ ํ ์ด๋ธ ๊ทธ๋ฆฌ๊ณ 2๋จ๊ณ์์ ์์ฑํ ํ ์ด๋ธ (first_app_choice/ first_app_question) ์คํค๋ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค ๐
๋ชจ๋ ์ค์ต์ด ์๋ฃ๋์์ต๋๋ค :)
๋ชจ๋ ์ค์ต์ ๊ณต์ํํ์ด์ง์ ๋น์ทํ๊ฒ ์งํ๋ฉ๋๋ค.!!