[Django] ์ฑ ๋ฐ ๋ชจ๋ธ ์์ฑ
1. ์ฑ ๋ง๋ค๊ธฐ
python manage.py startapp "์์ฑํ ์ฑ ์ด๋ฆ"
2. ๋ชจ๋ธ ๋ง๋ค๊ธฐ
models.py ๋ด์์
from django.db import models
class Post(models.Model):
title = models.CharField(max_length = 30)
content = models.TextField()
created_at = models.DateTimeField()
-> Post ๋ชจ๋ธ์ models ๋ชจ๋์ Model ํด๋์ค๋ฅผ ํ์ฅํด์ ๋ง๋ ํ์ด์ฌ ํด๋์ค์.
โป ํ์ด์ฐธ์์ django ํ๋ฌ๊ทธ์ธ์ ์ ๋๋ก ์ค์นํ์ง ์์ผ๋ฉด import ์์ ์ค๋ฅ๊ฐ ๋ธ
3. ํ์ด์ฌ ํด๋์ค๋ก๋ง ์กด์ฌํ๋ Post ๋ชจ๋ธ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ฐ์ํ๊ธฐ
3-1) setting.py์ ์ฑ ๋ฑ๋กํ๊ธฐ
settings.py ๋ด์ ์๋ INSTALLED_APPS ๋ผ๋ ๋ฆฌ์คํธ์ ์ฑ ์ด๋ฆ์ ์ถ๊ฐํจ.
3-2) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Post ๋ชจ๋ธ ๋ฐ์ํ๊ธฐ
python manage.py makemigrations
python manage.py migrate
โป.gitingnore ์ migrations/ ์ถ๊ฐํ๊ธฐ
why? models.py ๋ฅผ ์์ ํ ์ผ์ด ๋ง์๋ฐ ์ด ์์ ๋ด์ญ์ ์ผ์ผ์ด ๊ธฐ๋กํ๋ค๋ณด๋ฉด ๋ก์ปฌ๊ณผ ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ผ์นํ์ง ์์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์.
4. Post ๋ชจ๋ธ ์ถ๊ฐํ๊ธฐ
admin.py ๋ด์์
from django.contrib import admin
from .models import Post
admin.site.register(Post)
โถ ํน์ ์ง์ญ ๊ธฐ์ค์ผ๋ก ์์ฑ ์๊ฐ ์ค์ ํ๊ธฐ
settings.py์์TIME_ZONE = "UTC" -> TIME_ZONE = "Asia/Seoul"USE_TZ = True -> USE_TZ = False
โถ์๋์ผ๋ก ์์ฑ ์๊ฐ๊ณผ ์์ ์๊ฐ ์ ์ฅํ๊ธฐauto_now , auto_now_add ์ฌ์ฉ (->DateTimeField์์ ์ฌ์ฉํ ์ ์๋ ์ค์ )
ex) created_at = models.DateTimeField(auto_now_add=True)