๋ณธ ํ๋ก์ ํธ๋ ํจ์บ ๊ฐ์๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.
<์ด์ ๊ธ>
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์ ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค.
'์น > Django' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DJANGO ๊ธฐ์ด] 6. ์ธ์ , ๋ก๊ทธ์ธ ํ์ด์ง ๊ตฌํ (0) | 2021.06.19 |
---|---|
[DJANGO ๊ธฐ์ด] 5. Static ํ์ผ ๊ด๋ฆฌ, ๋ถํธ์คํธ๋ฉ CSS ํ ๋ง ์ ์ฉ (0) | 2021.06.19 |
[DJANGO ๊ธฐ์ด] 4. ํ์๊ฐ์ ํ์ด์ง ๋ง๋ค๊ธฐ (MTV ๊ตฌ์กฐ - T, V ์์ฑ) (0) | 2021.06.16 |
[DJANGO ๊ธฐ์ด] 3. Django admin, ๊ฐ๋ฐ ์๋ฒ ํ์ฉ (0) | 2021.06.14 |
[DJANGO ๊ธฐ์ด] 1. ๊ฐ์ํ๊ฒฝ ์ค์ ๋ฐ ์ฑ ์์ฑ (0) | 2021.06.13 |