โ๏ธ Python Programming/Frameworks23 < django - 17 > 17. ํ์๊ฐ์ ๊ณผ ํ์๊ฐ์ ๋งํฌ # ํ์๊ฐ์ ๋งํฌ : ํ์๊ฐ์ ์ ํ์ํ ๋งํฌ๋ฅผ projects/mysite/templates/navbar.html ํ ํ๋ฆฟ์ ์๋์ฒ๋ผ ์ถ๊ฐ + ๋ก๊ทธ์ธ๊ณผ ๋ก๊ทธ์์์ ์ฐ์ธก์ ํ์๊ฐ์ ๋งํฌ ์ถ๊ฐ + ํ์๊ฐ์ ์ ๋ก๊ทธ์์ ์ํ์ผ ๋์ ํํด ๋ณด์ด๋๋ก ์ค์ ํจ # urls.py : navbar.html ํ ํ๋ฆฟ์ {% url 'common:signup' %} ํ๊ทธ๋ฅผ ์ถ๊ฐํ์ผ๋ ์ฌ๊ธฐ์ ๋์ํ๋ URL ๋งคํ ๊ท์น์ ์ถ๊ฐํด์ผ ํจ - projects\mysite\common\urls.py ํ์ผ์ ์๋์ฒ๋ผ ํ์๊ฐ์ ์ ์ํ ๋งคํ ๊ท์น์ ์ถ๊ฐ --> ๋ก๊ทธ์ธ ํ๋ฉด์์ ํ์๊ฐ์ ๋งํฌ๋ฅผ ๋๋ฅด๋ฉด views.signup ํจ์๊ฐ ์คํ๋๊ฒ ํจ # forms.py - ๊ณ์ ์ ์์ฑํ ๋ ์ฌ์ฉํ UserForm์ pro.. 2022. 8. 7. < django - 16 > 16. django.contrib.auth ์ฑ + ๋ก๊ทธ์ธ๊ณผ ๋ก๊ทธ์์ + common ์ฑ + ๋ก๊ทธ์ธ ๋ทฐ + ๋ก๊ทธ์ธ ํ ํ๋ฆฟ # django.contrib.auth ์ฑ : ์ฅ๊ณ ์ ๋ก๊ทธ์ธ, ์์์ ๋์์ฃผ๋ ์ฑ์ผ๋ก, ์ฅ๊ณ ํ๋ก์ ํธ๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก ์ถ๊ฐ๋จ # common ์ฑ : ๊ณตํต ๊ธฐ๋ฅ์ ๊ฐ์ง ์ฑ์ผ๋ก, ๋ก๊ทธ์ธ๊ณผ ๋ก๊ทธ์์์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ 1. ๋ช ๋ น ํ๋กฌํฌํธ์ common ์ฑ์ ์๋ก ์์ฑํ๋ค. + common ์ฑ ์์ฑ ์ pybo ์ฑ๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ ๋๋ ํฐ๋ฆฌ, ํ์ผ๋ค์ด ์๋์ผ๋ก ๋ง๋ค์ด์ง. 2. projects\mysite\config\settings.py ํ์ผ์ ์๋ก ์์ฑํ common ์ฑ์ ๋ฑ๋กํ๋ค. 3. common ์ฑ์ urls.py ํ์ผ์ ์ฌ์ฉํ๊ธฐ ์ํด config/urls.py ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์.. 2022. 8. 6. < django - 15 > 15. ํ ํ๋ฆฟ ํํฐ ์์ฑ ๋ฐ ์ฌ์ฉ + ๊ฒ์๋ฌผ ๋ฒํธ์ ์ค๋ฅ ํด๊ฒฐ + ๋ต๋ณ ๊ฐ์ ํ์ # ํ ํ๋ฆฟ ํํฐ : ํ ํ๋ฆฟ ํ๊ทธ์์ | ๋ฌธ์ ๋ค์ ์ฌ์ฉํ๋ ํํฐ ex. {{ form.subject.value|default_if_none:'' }} # ๊ฒ์๋ฌผ ๋ฒํธ ์ค๋ฅ : http://localhost:8000/pybo/ ๋ฅผ ํธ์ถํ์ ๋ ์๋ ์ฌ์ง์ฒ๋ผ ๊ฒ์๋ฌผ์ ๋ฒํธ๊ฐ ํญ์ 1๋ถํฐ ์์ํ๋ค๋ ๋ฌธ์ ๋ฐ์. (ํ์ด์ง๋ 3์ธ๋ฐ ๊ฒ์๋ฌผ์ 1๋ถํฐ ์์ํ๋ค......) # ๊ฒ์๋ฌผ ๋ฒํธ : ๋ง์ฝ ๊ฒ์๋ฌผ ์ ์ฒด ๊ฑด์๊ฐ 12๊ฐ๋ผ๋ฉด, ์ฒซ๋ฒ์งธ ํ์ด์ง๋ ๋ฒํธ๊ฐ 12~3๊น์ง ์ญ์์ผ๋ก ๋ณด์ฌ์ง๊ณ ๋๋ฒ์งธ ํ์ด์ง์๋ 2~1๊น์ง ๋ณด์ฌ์ ธ์ผ ํจ --> ๋ฒํธ = ์ ์ฒด๊ฑด์ - ์์์ธ๋ฑ์ค - ํ์ฌ์ธ๋ฑ์ค + 1 ex. ์ ์ฒด ๊ฒ์๋ฌผ ๊ฐ์๊ฐ 12, ํ์ด์ง๋น 10๊ฑด์ฉ ๊ฒ.. 2022. 8. 6. < django - 14 > 14. ๋ด๋น๊ฒ์ด์ ๋ฐ + include ํ๊ทธ + ํ์ด์ง + ํ ์คํธ ๋ฐ์ดํฐ ์์ฑ + Paginator ํด๋์ค + ํ์ด์ง ๋ฆฌ์คํธ # ๋ด๋น๊ฒ์ด์ ๋ฐ 1. projects\mysite\templates\base.html ํ์ผ์ base.html ํ ํ๋ฆฟ์ ๋ด๋น๊ฒ์ด์ ๋ฐ ์ถ๊ฐ + Line 18 --> ํญ์ pybo:index ํ์ด์ง๋ก ์ด๋ํด ์ฃผ๋ 'Pybo' ๋ก๊ณ ๋ฅผ ๊ฐ์ฅ ์ผ์ชฝ์ ๋ฐฐ์น + Line 30 --> ์ค๋ฅธ์ชฝ์๋ '๋ก๊ทธ์ธ' ๋งํฌ๋ฅผ ์ถ๊ฐ 2. http://localhost:8000/pybo/ ํ์ด์ง ํธ์ถ + ์ผ์ชฝ ์๋จ์ pybo ๊ธ์๋ฅผ ๋๋ฅด๋ฉด ์ธ์ ๋ ๋ค์ ๋ฉ์ธ ํ์ด์ง๋ก ๋์๊ฐ ์ ์์. 3. Ctrl + ๋ง์ฐ์ค ์คํฌ๋กค์ ํตํด ์น ๋ธ๋ผ์ฐ์ ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ฐ์ธก ์๋จ์ ํ๋ฒ๊ฑฐ ๋ฉ๋ด ๋ฒํผ์ด ์๊ธฐ๊ณ ๋ก๊ทธ์ธ ๋งํฌ๊ฐ ์ฌ.. 2022. 8. 5. < django - 13 > 13. ํผ ๋ ์ด๋ธ + ์๋ ํผ ์์ฑ + ๋ต๋ณ ๋ฑ๋ก # ํผ ๋ ์ด๋ธ 1. ์ง๋ฌธ ๋ฑ๋ก ํ๋ฉด์ 'Subject', 'Content'๋ฅผ ์๋ฌธ์ด ์๋ ํ๊ธ๋ก ํ์ํ๊ธฐ ์ํด projects\mysite\pybo\forms.py ํ์ผ์ labels ์์ฑ์ ์ง์ ํ๋ค. 2. http://localhost:8000/pybo/question/create ํ์ด์ง๋ฅผ ํธ์ถํ๋ค. # ์๋ ํผ ์์ฑ 1. ์๋ ํผ์ ์์ฑํ๋๋ฐ ํ์ํ์ง ์์ widget ์์ฑ์ projects\mysite\pybo\forms.py ํ์ผ์์ ์ ๊ฑฐํ๋ค. 2. projects\mysite\templates\pybo\question_form.html ํ์ผ์ ์ง๋ฌธ ๋ฑ๋ก ํ ํ๋ฆฟ์ ์๋์ฒ๋ผ ์์ + ์ ๋ชฉ, ๋ด์ฉ์ ํด๋น๋๋ HTML์ฝ๋๋ฅผ ์ง์ ์์ฑํจ ( Line 22.. 2022. 8. 5. < django - 12 > 12. ํผ๊ณผ ์ง๋ฌธ ๋ฑ๋ก + URL ๋งคํ + ๋ทฐ ํจ์ + ํ ํ๋ฆฟ + GET๊ณผ POST # ์ง๋ฌธ ๋ฑ๋ก๊ณผ URL ๋งคํ 1. projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ง๋ฌธ ๋ฑ๋กํ๊ธฐ ๋ฒํผ์ ๋ง๋ ๋ค. + ๊ณผ ๊ฐ์ ๋งํฌ์ด์ง๋ง ๋ถํธ์คํธ๋ฉ์ btn btn-primary ํด๋์ค๋ฅผ ์ ์ฉํ๋ฉด ๋ฒํผ์ผ๋ก ๋ณด์ --> ๋ฒํผ ํด๋ฆญ ์ pybo:question_create ๋ณ์นญ์ ํด๋น๋๋ URL์ด ํธ์ถ 2. projects\mysite\pybo\urls.py ํ์ผ์ pybo:question_create ๋ณ์นญ์ ํด๋น๋๋ URL ๋งคํ ๊ท์น์ ์ถ๊ฐํ์ฌ views.question_create ํจ์๋ฅผ ํธ์ถํ๋๋ก ๋งคํ # ํผ(Form)๊ณผ ๋ทฐ ํจ์ : ํ์ด์ง๊ฐ ์์ฒญ๋ ๋ ์ ๋ฌ๋๋ ํ๋ผ๋ฏธํฐ๋ค์ .. 2022. 8. 5. ์ด์ 1 2 3 4 ๋ค์