๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

[Django] ์•ฑ ๋ฐ ๋ชจ๋ธ ์ƒ์„ฑ ๋ณธ๋ฌธ

Django

[Django] ์•ฑ ๋ฐ ๋ชจ๋ธ ์ƒ์„ฑ

adorableco 2022. 9. 12. 00:32
๋ฐ˜์‘ํ˜•

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)

 

๋ฐ˜์‘ํ˜•