์์ : ๊ฐ์ํ๊ฒฝ ์์ฑ -> ํ์ํ ํจํค์ง ๋ค์ด( django ํ์)
-> ํ๋ก์ ํธ , ์ฑ ์์ฑ ๋ฐ ์ค์ -> model ์์ฑ (DB)
# django-admin startproject [ํ๋ก์ ํธ์ด๋ฆ]
$ django-admin startproject first_project
-
๋ ์ฌ์ฉํ ์ ์๋ค. (ex. django, test, class, django-test...)$ python manage.py runserver
์ ์์ฑ๋์๋ ์ง ํ์ธํด๋ณด์! ๋ก์ผ๋์ค๋ฉด ํ์ ์ ๋ง๋ค์ด์ง๊ฒ๐. ์! ์ด์ ์๋ฒ ๋์
# python manage.py startapp [์ฑ์ด๋ฆ]
$ python manage.py startapp articles
๋ณต์ํ
์ผ๋ก ํ๋ ๊ฒ์ด ์ข๋ค.# settings.py
INSTALLED_APPS = [
'articles',
....
]
# settings.py
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
# articles/models.py
from django.db import models
# ์๋ ๋๊ฐ๋ ๋์ค์ (Media - ์ด๋ฏธ์ง์
๋ก๋) ์ฌ์ฉํ ํจํค์ง ์
๋๋ค.
from imagekit.models import ProcessedImageField
from imagekit.processors import Thumbnail
Class Article(models.Model):
title = models.CharField(max_lenght=10)
content = models.TextField()
created_at = models.DataTimeField(auto_now_add = True)
updated_at = models.DataTimeField(auto_add = True)
# ์ด๋ฏธ์ง๋ฅผ ๋ด์๋ ํ๋
image = ProcessedImageField(
blank=True,
format="JPEG",
processors=[Thumbnail(200,300)],
upload_to="%Y/%m/%d/"
)
django๊ฐ ๋ชจ๋ธ์ ์๊ธด ๋ณํ(ํ๋๋ฅผ ์ถ๊ฐํ๋ค๋๊ฐ ๋ชจ๋ธ์ ์ญ์ ํ๋ค๋๊ฐ ๋ฑ)๋ฅผ ๋ฐ์ํ๋ ๋ฐฉ๋ฒ
makemigrations
$ python manage.py makemigrations
-> articles/migrations/ 0001_initial.py ์์ฑ
migrate
$ python manage.py migrate
--์ต์ --
sqlmigrate
$ python manage.py sqlmigrate aricles 0001
showmigrations
$ python manage.py showmigrations
sqlite ์ค์น : vscode ๋ด์์ db๊ตฌ์ฑ์ ์ฝ๊ฒ ๋ณด์ฌ์ฃผ๋ ํ์ฅํ์ผ
CharField(max_length=None, **options)
TextField()
์ฌ์ฉTextField(**options)
DateTimeField(auto_now=False, auto_now_add=False, **options)
์ต์ด ์์ฑ ์ผ์
auto_now_add=True
django ORM์ด ์ต์ด insert(ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ ๋ ฅ)์์๋ง ํ์ฌ ๋ ์ง์ ์๊ฐ์ผ๋ก ๊ฐฑ์ (ํ ์ด๋ธ์ ์ด๋ค ๊ฐ์ ์ต์ด๋ก ๋ฃ์ ๋)
์ต์ข ์์ ์ผ์
auto_now=True
django ORM์ด save๋ฅผ ํ ๋๋ง๋ค ํ์ฌ ๋ ์ง์ ์๊ฐ์ผ๋ก ๊ฐฑ์
๊ธฐ์กด์ ๋ด๊ฐ [models.py](<http://models.py>)
์ ์ ์ํ์ง ์์๋ ํ
์ด๋ธ์ ์ฅ๊ณ ๊ฐ ๊ธฐ์กด์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ ํ
์ด๋ธ
migrate
๋ makemigrations
๋ก ๋ง๋ ์ค๊ณ๋๋ฅผ ์ค์ db.sqlite3
DB์ ๋ฐ์ํ๋ค.
๋ชจ๋ธ์์์ ๋ณ๊ฒฝ ์ฌํญ๋ค๊ณผ DB์ ์คํค๋ง๊ฐ ๋๊ธฐํ๋ฅผ ์ด๋ฃฌ๋ค.
django๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก orm์ ์ ๊ณตํจ์ ๋ฐ๋ฅธ ๊ฒ์ผ๋ก db๋ฅผ ํธํ๊ฒ ์กฐ์ํ ์ ์๋๋ก ๋์์ค
Django ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์์ ์ด ์ ๊ณต๋๋ ์ธํฐํ์ด์ค ์ฐธ๊ณ
models.py
์ ์ค์ ํ ํด๋์ค(ํ
์ด๋ธ)์ ๋ถ๋ฌ์์ ์ฌ์ฉํ ๋ DB์์ interface ์ญํ ์ ํ๋ ๋งค๋์ models.py
) โโโ objects โโโ DBobjects
' ๋ผ๋ Manager(django.db.models.Manager) ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ํํฐ๋ฅผ ๊ฑธ๊ฑฐ๋ ์ ๋ ฌ ๋ฑ์ ์ํ
์ฟผ๋ฆฌ(์ง๋ฌธ)๋ฅผ DB์๊ฒ ๋์ ธ์ ๊ธ์ ์ฝ๊ฑฐ๋, ์์ฑํ๊ฑฐ๋, ์์ ํ๊ฑฐ๋, ์ญ์