๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โœ’๏ธ Python Programming36

< 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.
< 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.