๐Ÿ“๐Ÿ’ช/Django

2์ฃผ์ฐจ_2๋ฒˆ์งธ_Tweet ์ž‘์—…ํ•˜๊ธฐ

์ˆ˜์จ”์•™ 2022. 9. 22. 21:07

์ด๋ฒˆ์—๋Š” tweet์„ ์ž‘์—…ํ•ด์ฃผ์ž

user ์ฒ˜๋Ÿผ ๋น„์Šทํ•˜๋‹ˆ๊นŒ ๋ณต์Šตํ•œ๋‹ค ์ƒ๊ฐํ•˜๊ณ  ๋” ์ต์ˆ™ํ•ด์ ธ๋ณด์ž!

 

์ „์—๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— user ์•ฑ์œผ๋กœ ํ–ˆ์ง€๋งŒ

์ด๋ฒˆ์—๋Š” ๊ธ€์„ ๋งŒ๋“ค ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— tweet ์•ฑ์—์„œ ์ง„ํ–‰ํ•  ๊ฒƒ!

tweet์„ ์ด์šฉํ•ด์„œ sns ๊ฒŒ์‹œ๊ธ€์„ ๋งŒ๋“ค ๊ฑฐ๋‹ค!!!

์ž‘์„ฑ์ž, ๊ธ€ ๋‚ด์šฉ, ์ƒ์„ฑ์ผ์ž, ์ˆ˜์ •์ผ์ž ์ •๋„ ๋„ฃ์–ด์ฃผ์ž

 

 

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์™€ db์—ฐ๊ฒฐ, db.sqlite3 ์ƒ์„ฑ ํ™•์ธ์€ ์ „์— ํ–ˆ์œผ๋‹ˆ๊นŒ ๋ชจ๋ธ๋งŒ๋“ค๊ธฐ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ž!

๋ชจ๋ธ ๋งŒ๋“ค๊ณ , db์— ๋„ฃ๊ณ , ๊ด€๋ฆฌ์ž ๊ณ„์ •์— ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค!

 

 

1. tweet ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ

 

tweet ํด๋”์— models.py์— ์•„๋ž˜ ์ฝ”๋“œ ๋ถ™์—ฌ๋„ฃ์ž

# tweet/models.py
from django.db import models
from user.models import UserModel
# user ์•ฑ์— ์žˆ๋Š” models ์ค‘์— UserModel์„ ๊ฐ€์ ธ์˜ค๊ฒ ๋‹ค๋Š” ๊ฒƒ!


# Create your models here.
class TweetModel(models.Model):
    class Meta:
        db_table = "tweet"

    author = models.ForeignKey(UserModel, on_delete=models.CASCADE)
    # ForeignKey๋Š” ๋‹ค๋ฅธ db์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒ ๋‹ค๋Š” ๊ฒƒ!
    # ๋‹ค๋ฅธ ๋ชจ๋ธ์„ ๊ฐ€์ ธ์™€์„œ ์•ˆ์— ๋„ฃ์–ด๋‘๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค ๊ทธ๋ž˜์„œ UserModel์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๊ฒƒ
    content = models.CharField(max_length=256)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

ForeignKey๋Š” '์™ธ๋ถ€ ๋ชจ๋ธ์„ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค.' ๋ผ๋Š” ๊ฒƒ!

 

author = models.ForeignKey(UserModel, on_delete=models.CASCADE)

์—ฌ๊ธฐ์—์„œ author๋Š” ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ, User ์•ฑ์—์„œ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋˜ User Model์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑ ํ•œ ๊ธ€ ์ด๊ธฐ ๋•Œ๋ฌธ์— ForeignKey๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋„ฃ์–ด์ค€ ๊ฒƒ!

 

 

2. db์— ๋„ฃ๊ธฐ

 

ctrl + c ๋กœ ์„œ๋ฒ„ ์ข…๋ฃŒ์‹œํ‚ค๊ณ 

python manage.py makemigrations
python manage.py migrate

์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ์ž!

 

์ž˜ ๋˜์—ˆ๋‹ค!

db.sqlite3์—์„œ๋„ tweet ํด๋”๊ฐ€ ์ž˜ ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๊ฑธ ํ™•์ธํ–ˆ๋‹ค!

 

์ด์ œ python manage.py runserver ์ž…๋ ฅํ•ด์„œ ์„œ๋ฒ„ ๋‹ค์‹œ ์‹คํ–‰์‹œ์ผœ์„œ ์˜ค๋ฅ˜ ์•ˆ๋‚˜๋‚˜ ํ™•์ธํ•˜์ž

์˜ค๋ฅ˜ ์•ˆ๋‚œ๋‹คใ…Ž.ใ…Ž ์ด์ œ admin์— ๋„ฃ์–ด์ฃผ์ž

 

 

3. admin์— ๋„ฃ๊ธฐ

 

๊ด€๋ฆฌ์ž ๊ณ„์ •์€ user์—์„œ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ๊นŒ 

๋ฐ”๋กœ admin์— ๋„ฃ์–ด์ฃผ์ž!

 

tweet ํด๋” -> admin.py์— ์•„๋ž˜ ์ฝ”๋“œ ๋ถ™์—ฌ๋„ฃ๊ธฐ

from django.contrib import admin
from .models import TweetModel

# Register your models here.
admin.site.register(TweetModel)

 

๊ทธ๋ฆฌ๊ณ  

http://127.0.0.1:8000/admin/

์—ด๋ฉด ์™„์ „ ์™„๋ฒฝ...!!!

 

 

๊ฐ๊ฒฉ์Šค๋Ÿฝ๊ตฐ... ์ด์ œ ์ข€ ์ˆœ์„œ๊ฐ€ ์žกํžˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค! ์•„์‹ธ๋ตค!

 

 

 

728x90