โ๏ธ Python Programming/Frameworks23 < django - 23 > 23. ๊ฒ์ ๊ธฐ๋ฅ๊ณผ GET + ๊ฒ์ ํผ + ํ์ด์ง + ๊ฒ์ ์คํฌ๋ฆฝํธ์ ๊ฒ์ ํจ์ # ๊ฒ์ ํ๋ฉด ๋ฐ ๊ฒ์ ์ฐฝ - projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ด์ด ํ ํ๋ฆฟ์ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ ์ ์๋ ํ ์คํธ์ฐฝ ์ถ๊ฐ + ์ง๋ฌธ ๋ฑ๋กํ๊ธฐ ๋ฒํผ์ ๊ฒ์์ฐฝ์ ์ผ์ชฝ์ผ๋ก ์ด๋ + Line 11์ id="search_kw" --> ์๋ฐ ์คํฌ๋ฆฝํธ์์ ์ด ํ ์คํธ์ฐฝ์ ์ ๋ ฅ๋ ๊ฐ์ ์ฝ๊ธฐ ์ํด id์์ฑ ์ถ๊ฐ # ๊ฒ์ ํผ - projects\mysite\templates\pybo\question_list.html ์ ์ด๊ณ page, kw๋ฅผ ๋์์ GET์ผ๋ก ์์ฒญํ ์ ์๋ searchForm ์ถ๊ฐ + > : method ์์ฑ์ "get" ์ค์ --> GET ๋ฐฉ์์ผ๋ก ์์ฒญํด์ผ ํ๊ธฐ ๋๋ฌธ.. 2022. 8. 25. < django - 22 > 22. ๋ต๋ณ ์ต์ปค + ๋ต๋ณ redirect + ๋งํฌ๋ค์ด๊ณผ ๋งํฌ๋ค์ด ๋ฌธ๋ฒ # ๋ต๋ณ ์ต์ปค - projects\mysite\templates\pybo\question_detail.html ํ์ผ์ ์ด๊ณ ๋ต๋ณ ์์ฑ, ์์ ์์ ์ด๋ํด์ผ ํ ์ต์ปค ํ๊ทธ๋ฅผ ์ง๋ฌธ ์์ธ ํ ํ๋ฆฟ์ ์ถ๊ฐ + URL ์ ํธ์ถํ ๋ ์ํ๋ ์์น๋ก ์ด๋ํ ์ ์๊ฒ ํด ์ฃผ๋ ์ต์ปค ํ๊ทธ ์ถ๊ฐ + answer_{{ answer.id }}์ฒ๋ผ ๋ต๋ณ id ์ฌ์ฉ --> ์ต์ปค ํ๊ทธ์ name ์์ฑ์ด ์ ์ผํ ๊ฐ์ด์ฌ์ผ ํ๊ธฐ ๋๋ฌธ # ๋ต๋ณ redirect 1. projects\mysite\pybo\views\answer_views.py ํ์ผ์ ์ด๊ณ answer_views.py์ answer_create, answer_modify, answer_vote ํจ์๋ฅผ ์๋.. 2022. 8. 23. < django - 21 > 21. ์ง๋ฌธ๊ณผ ๋ต๋ณ ์ถ์ฒ # Question ๋ชจ๋ธ๊ณผ voter ์์ฑ 1. projects\mysite\pybo\models.py ํ์ผ์ ์ด์ด Question ๋ชจ๋ธ์ ์ถ์ฒ์ธ(voter) ์์ฑ ์ถ๊ฐ + Line 11์ ManyToManyField : ๋ค๋๋ค(N:N) ๊ด๊ณ --> ํ๋์ ์ง๋ฌธ์ ์ฌ๋ฌ๋ช ์ด ์ถ์ฒํ ์ ์๊ณ ํ ๋ช ์ด ์ฌ๋ฌ ๊ฐ์ ์ง๋ฌธ์ ์ถ์ฒํ ์ ์๋ ์์คํ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ 2. ๋ช ๋ น ํ๋กฌํฌํธ์์ makemigrations ๋ช ๋ น ์คํ --> ์ค๋ฅ ๋ฐ์ + User ๋ชจ๋ธ์ ํตํด์ Question ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ, author์ voter ์ค ์ด๋ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ํด์ผ ํ ์ง ๋ช ํํ์ง ์๋ค๋ ์ค๋ฅ --> Question ๋ชจ๋ธ์์ ์ฌ์ฉํ author, voter๊ฐ ๋ชจ๋ User ๋ชจ๋ธ๊ณผ ์ฐ๊ฒฐ๋์ด์์ด ๋ฐ์.. 2022. 8. 22. < django - 20 > 20. views.py ํ์ผ ๋ถ๋ฆฌ # views.py ํ์ผ ๋ถ๋ฆฌ 1. ๋ช ๋ น ํ๋กฌํฌํธ์์ projects\mysite\pybo\views ๋๋ ํฐ๋ฆฌ ๋ง๋ค๊ธฐ 2. ๊ธฐ๋ณธ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ projects\mysite\pybo\views\base_views.py ํ์ผ์ ์๋์ ๊ฐ์ด ์์ฑ 3. ์ง๋ฌธ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ projects\mysite\pybo\views\question_views.py ํ์ผ์ ์๋์ ๊ฐ์ด ์์ฑ 4. ๋ต๋ณ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ projects\mysite\pybo\views\question_views.py ํ์ผ์ ์๋์ ๊ฐ์ด ์์ฑ 5. views ๋๋ ํฐ๋ฆฌ์ projects\mysite\pybo\views\__init__.py ํ์ผ์ ์๋์ฒ๋ผ ์์ฑ ํ pybo/views.py ํ์ผ ์ญ์ 6. ์ฌํ๊น์ง์ ๊ณผ.. 2022. 8. 17. < django - 19 > 19. ๊ธ์ด์ด ํ์์ ์ง๋ฌธ ๋ชฉ๋ก + ์ง๋ฌธ ์์ธ + ๊ธ, ์ง๋ฌธ์ ์์ ๋ฐ ์ญ์ + ๊ธ, ์ง๋ฌธ ์์ ์ผ์ ํ์ + ์ค๋ฅ ํ์ + ์๋ฐ์คํฌ๋ฆฝํธ ๋ธ๋ก # ๊ธ์ด์ด ํ์์ ์ง๋ฌธ ๋ชฉ๋ก 1. projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ด๊ณ ํ ์ด๋ธ ํค๋์ ๊ธ์ด์ด ํญ๋ชฉ ์ถ๊ฐ + Line 10์ ๊ธ์ด์ด ํญ๋ชฉ ์ถ๊ฐ + Line 7์ tr ์๋ฆฌ๋จผํธ์ text-center ํด๋์ค๋ฅผ ์ถ๊ฐ --> th ์๋ฆฌ๋จผํธ๊ฐ ๊ฐ์ด๋ฐ์ ์์นํ๊ฒ ํ๊ธฐ ์ํจ + Line 9 ์ ์ ๋ชฉ ๋์ด๊ฐ ์ ์ฒด์ 50%๊ฐ ๋๋๋ก ์ง์ 2. projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ด์ด for ๋ฌธ์๋ ๊ธ์ด์ด ์ ์ฉ + > : {{ question.user.use.. 2022. 8. 15. < django - 18 > 18. ๋ชจ๋ธ ๋ณ๊ฒฝ + Question, Answer ์์ฑ ์ถ๊ฐ + author ์ ์ฅ + ๋ก๊ทธ์ธ์ด ํ์ํ ํจ์ + next ์ disable # Question ๋ชจ๋ธ๊ณผ author ์์ฑ - projects\mysite\pybo\models.py ํ์ผ์ ์ด๊ณ Question ๋ชจ๋ธ์ author ์์ฑ์ ์ถ๊ฐ + Line 6์์ author ํ๋๋ User ๋ชจ๋ธ์ ForeignKey ๋ก ์ ์ฉ ํ ์ ์ธ + User ๋ชจ๋ธ --> django.contrib.auth ์ฑ์ด ์ ๊ณตํ๋ ์ฌ์ฉ์ ๋ชจ๋ธ์ผ๋ก, ํ์ ๊ฐ์ ์ ๋ฐ์ดํฐ ์ ์ฅ์ ์ฌ์ฉ + Line 6์ on_delete=models.CASCADE --> ๊ณ์ ์ญ์ ์ ๊ณ์ ์ด ์์ฑํ ์ง๋ฌธ ๋ชจ๋ ์ญ์ + ์ฃผ์! ๋ชจ๋ธ์ ๋ณ๊ฒฝํ ํ์๋ ๊ผญ ๋ช ๋ น ํ๋กฌํฌํธ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๊ฒฝํด์ฃผ.. 2022. 8. 7. ์ด์ 1 2 3 4 ๋ค์