๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํŒจ์บ  ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

<์ด์ „ ๊ธ€>

https://silvercoding.tistory.com/11

 

[DJANGO ๊ธฐ์ดˆ] ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์•ฑ ์ƒ์„ฑ

ํ”„๋ ˆ์ž„ ์›Œํฌ - ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ฒด๊ณ„ํ™” ํ•˜์—ฌ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์ฝ”๋“œ ์ง‘ํ•ฉ - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ˜ผ๋™๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ข€ ๋” ๊ทœ๋ชจ๊ฐ€ ํฌ๊ณ  ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ฐ˜์ด ๋จ - ๊ฑด์ถ•์— ๋น„์œ ํ•˜๋ฉด ๊ตฌ์กฐ

silvercoding.tistory.com

 

 

 

์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” DJANGO์ธ๋ฐ๋‹ค ๊ฐ•์˜ ๋‚ด์šฉ๋Œ€๋กœ ํ•˜๋ฉด ์•ˆ๋˜๋Š” ๋ถ€๋ถ„๋„ ์žˆ์–ด์„œ ์ง„ํ–‰์†๋„ ๋งˆ์น˜ ๊ฑฐ๋ถ์ด!

 

 

----์ด์ „ ๊ธ€์—์„œ ํ–ˆ๋˜ ๊ฒƒ ์ ๊ฒ€

  • ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ์ ์šฉ
  • django ์„ค์น˜
  • project ์ƒ์„ฑ (community) ---> ์ด๋ฒˆ ๊ธ€์˜ ํ„ฐ๋ฏธ๋„ ์—์„œ ์ž…๋ ฅํ•  ๋•Œ ํŒŒ์ผ ๋์ด community๋กœ ๋˜์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค. (cd community๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ)
  • app ์ƒ์„ฑ (board, user)
  • app ๋“ฑ๋ก โ˜†โ˜†โ˜† (app๋“ฑ๋ก์ด ๋˜์–ด์žˆ์–ด์•ผ migration ๊ฐ€๋Šฅ/ settings.py ์—์„œ ๋“ฑ๋ก ๊ฐ€๋Šฅ) 

 

์ด๋ฒˆ ์ž‘์—…์€ ์œ„์˜ ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ์ž˜ ์•ˆ๋˜๋Š” ๊ฒŒ ์žˆ์œผ๋ฉด ์นจ์ฐฉํ•˜๊ฒŒ ์ ๊ฒ€ ํ•ด๋ณด๊ธฐ.

 

 

MTV ๊ตฌ์กฐ์—์„œ Model ๋งŒ๋“ค๊ธฐ 

1. ๋ชจ๋ธ ์ž‘์„ฑ

user ํด๋” -----> model.py

class User(models.Model):
    Username = models.CharField(max_length=64,
    verbose_name="์‚ฌ์šฉ์ž๋ช…")

    password = models.CharField(max_length=64,
    verbose_name="๋น„๋ฐ€๋ฒˆํ˜ธ")

    registered_dttm = models.DateTimeField(auto_now_add=True,
    verbose_name="๋“ฑ๋ก์‹œ๊ฐ„")

    class Meta:
        db_table = 'test_user'

ํด๋ž˜์Šค ์•ˆ์˜ Metaํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ์ง€์ •ํ•ด ์ค€๋‹ค. 

 

 

2. ๋ชจ๋ธ ๋“ฑ๋ก 

ํ„ฐ๋ฏธ๋„

python manage.py makemigrations user 

 

๋ฐ”๋กœ ํ–ˆ๋”๋‹ˆ app์ด ์—†๋‹ค๊ณ  ์—๋Ÿฌ(;;)๊ฐ€ ๋‚˜๊ธธ๋ž˜ ์ด์ „ ๊ธ€์—์„œ ์•ฑ ๋“ฑ๋ก์„ ํ•ด์ฃผ์—ˆ๋˜ settings.py๋ฅผ ์‹คํ–‰ ์‹œํ‚ค๊ณ , models.py๋„ ์‹คํ–‰์‹œํ‚จ ํ›„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋”๋‹ˆ

 Create model User ์™„๋ฃŒ

 

ํ„ฐ๋ฏธ๋„

python manage.py migrate

์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต


์ด์ œ sqlite์— ๋“ค์–ด๊ฐ€์„œ ๋“ฑ๋กํ•œ table์„ ํ™•์ธํ•ด ๋ณธ๋‹ค.

 

 

sqlite ์‚ฝ์งˆ

sqlite3 db.sqlite3

๊ฐ•์˜์—์„  ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜์˜€๊ณ , ๋‚˜๋Š” ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๋ช…๋ น์–ด! ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ๋‹ค. ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋‹ˆ ํ™˜๊ฒฝ๋ณ€์ˆ˜ path ์„ค์ • ๊ด€๋ จ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์€๋ฐ ์‹œ๊ฐ„์ด ์—†์–ด์„œ ๊ธฐ๊ฐ! ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ดค๋‹ค. ํฝํ•˜๋ฉด ์ด ์—๋Ÿฌ๊ฐ€ ๋‚˜๋‹ˆ ํ•œ๋ฒˆ์ฏค ์กฐ์น˜๋ฅผ ์ทจํ•ด์ฃผ์–ด์•ผ๊ฒ ๋‹ค. 

 

python manage.py dbshell

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ๋‹ค. ์˜ค ๊ทธ๋žฌ๋”๋‹ˆ 

CommandError: You appear not to have the 'sqlite3' program installed or on your path.

์ด๋Ÿฌํ•œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ๊ทธ๋ž˜๋„ ์ด๊ฑด ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋‹ˆ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด๋ณด์—ฌ์„œ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์ฑ„ํƒ!

 

----> ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
https://www.sqlite.org/download.html ์—์„œ
sqlite-tools-win32-x86-3350500.zip ์„ค์น˜ 

์••์ถ• ํ’€๊ณ  sqlite3.exe๋ฅผ db.sqlite3๊ฐ€ ์žˆ๋Š” ํด๋” ์•ˆ์— ๋„ฃ์–ด์ค€๋‹ค. 

 

๋‘๊ทผ๋‘๊ทผ ๋‹ค์‹œ ์ž…๋ ฅํ•ด์คฌ๋”๋‹ˆ 

python manage.py dbshell

๋“œ๋””์–ด sqlite์— ๋“ค์–ด๊ฐ€์ง„๋‹ค. 

 

 

 

 

๊ฐ„๋‹จํ•œ sqlite ์‚ฌ์šฉ 

1. table ํ™•์ธ

.table

test_user๋„ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

2. schema ํ™•์ธ

.schema test_user

๋ชจ๋ธ ์ž‘์„ฑ์—์„œ ์ƒ์„ฑํ–ˆ๋˜ field๋“ค์ด ์ž˜ ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต 

 

 

3. model field๋‚ด์šฉ ๋ณ€๊ฒฝ ํ›„ ํ™•์ธํ•ด๋ณด๊ธฐ

class User(models.Model):
    Username = models.CharField(max_length=32,
    verbose_name="์‚ฌ์šฉ์ž๋ช…")

    password = models.CharField(max_length=64,
    verbose_name="๋น„๋ฐ€๋ฒˆํ˜ธ")

    registered_dttm = models.DateTimeField(auto_now_add=True,
    verbose_name="๋“ฑ๋ก์‹œ๊ฐ„")

    class Meta:
        db_table = 'test_user'

Username์˜ max_length๋ฅผ 32๋กœ ๋ฐ”๊พธ๊ณ  ์ ์šฉํ•ด๋ณด์ž. 

 

 

์šฐ์„  sqlite์—์„œ ๋น ์ ธ๋‚˜์˜ค๋ ค๋ฉด 

.q

๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

์ด์ œ ์•ž์˜ ๋‚ด์šฉ๊ณผ ๋˜‘๊ฐ™์ด ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

model ๋ฐ”๊พธ๊ณ  ์‹คํ–‰์„ ์•ˆ์‹œํ‚ค๊ณ  ๋‹ค์Œ์„ ์ž‘์„ฑํ•˜๋ฉด

python manage.py makemigrations user

No changes detected in app 'user'  ์ด๋Ÿฐ๊ฒŒ ๋œฌ๋‹ค. ์‹คํ–‰์„ ์‹œํ‚ค๊ณ  ๋‹ค์‹œ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ์ •์ƒ์ ์œผ๋กœ Alter field Username on user ๋ผ๋Š” ๋ฉ”์‹œ๊ฐ€ ๋œฌ๋‹ค. (์‹คํ–‰์„ ์•ˆ์‹œ์ผœ๋„ ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์‹ ๋‹ค๋ฉด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค) 

 

python manage.py migrate

๊ทธ๋‹ค์Œ ๋˜‘๊ฐ™์ด migrate ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๊ณ  sqlite์— ๋‹ค์‹œ ๋“ค์–ด๊ฐ€์„œ ํ™•์ธ ํ•ด๋ณด๋ฉด 

 

์œ„์™€ ๊ฐ™์ด Username varchar(32)๋กœ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

์ด๋ ‡๊ฒŒ makemigrations ์™€ migrate๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง€์†์ ์œผ๋กœ db์— ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

 

+ Recent posts