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

728x90

MVT

2/18 ๊ธˆ ์•œ ๋ถˆ๊ธˆ!!!!! ๐Ÿฑ‍๐Ÿ๐Ÿฑ‍๐Ÿ‘ค ์˜ค๋Š˜์€ ์–ด์ œ ์ถ”๊ฐ€ํ–ˆ๋˜ ๊ฒŒ์‹œํŒ ๊ธ€ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ๋„ฃ์—ˆ๋˜ ๋ฒ„ํŠผ๋“ค์˜ ๊ธฐ๋Šฅ์„ ์‹คํ˜„์‹œํ‚จ๋‹ค. ์˜คํ›„ 3์‹œ ๋ฐ˜ ์ •๋„์— ๊ฒŒ์‹œํŒ ๊ตฌํ˜„์„ ๋งˆ๋ฌด๋ฆฌ ์ง“๊ณ , ํŽธ์„ฑ๋œ ์กฐ๋ณ„๋กœ ์†ŒํšŒ์˜์‹ค์—์„œ ๋‚˜๋จธ์ง€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋‹ค. ํŒ€์›๋“ค๊ณผ ์•„์ด์Šค๋ธŒ๋ ˆ์ดํ‚น, ์›น ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ์„ ์ •, ์Šคํ† ๋ฆฌ ๋ณด๋“œ ์ž‘์„ฑํ•จ~ ์›”์š”์ผ์—๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ๋ฐœ ์ˆ˜์—…์— ๋Œ€ํ•œ ์ฒซ ํ‰๊ฐ€(ํ•„๋‹ต)๊ฐ€ ์žˆ์„ ์˜ˆ์ •! ์ฃผ๋ง ๋™์•ˆ ์—ฌํƒœ ๋ฐฐ์šฐ๋ฉฐ ์ •๋ฆฌํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ๋‹ค์‹œ ์ ๊ฒ€ํ•˜๊ณ , ๊ฒŒ์‹œํŒ ๊ธฐ๋Šฅ์„ ๋งˆ์ € ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. 1. ๋ฆฌ์ŠคํŠธ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๋ฒ„ํŠผ JavaScript event ๋ฐฉ์‹(Delegation Model)์œผ๋กœ ์ฒ˜๋ฆฌ ↓detail.html↓ ๋ฆฌ์ŠคํŠธ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ↓menu_btn.js↓ function to_list() { document.location.href = .. ๋”๋ณด๊ธฐ
2/16 ์ˆ˜ ์ˆ˜์š”์ผ! ์˜ค๋Š˜์€ Django๋กœ ๊ฒŒ์‹œํŒ์„ ๋งŒ๋“ ๋‹ค. 1. ๋ฃจํŠธ ๋””ํ…ํ„ฐ๋ฆฌ ๋ฐ”๋กœ ๋ฐ‘์— ํ…œํ”Œ๋ฆฟ์„ ๋ชจ์•„ ์ €์žฅํ•  ๋””ํ…ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ , settings.py ํŒŒ์ผ์—์„œ os ๋ชจ๋“ˆ(๊ฒฝ๋กœ์™€ ํŒŒ์ผ๋ช…์„ ํ•ฉ์นจ)์„ import ํ•œ ํ›„์— ํ…œํ”Œ๋ฆฟ ๋””ํ…ํ„ฐ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•จ os.path.join(๊ฒฝ๋กœ, 'ํŒŒ์ผ๋ช…') → C:/python-django/LectureSampleProject_0216/template ํŒŒ์ผ๋“ค 2. Static files(CSS, JS, images)์€ client์˜ request URL์—์„œ ๋‚˜์˜ค๋Š” ํ˜•ํƒœ์ด๋ฏ€๋กœ, ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ”๋กœ ๋ฐ‘์— static ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  settings.py ํŒŒ์ผ์—์„œ static ๋””ํ…ํ„ฐ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•จ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ”๋กœ ๋ฐ‘์— media ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  Media ํŒŒ์ผ(client๊ฐ€ server์—.. ๋”๋ณด๊ธฐ
2/15 ํ™” ํ™”์š”์ผ! PyCharm์œผ๋กœ ์ง€๋‚œ๋ฒˆ์— ํ–ˆ๋˜ Project(MyFirstWeb_0215) ์ƒ์„ฑ, Django ์„ค์น˜ ๋ฐ MySQL ์—ฐ๋™์„ ๋˜‘๊ฐ™์ด ์ง„ํ–‰ํ–ˆ๋‹ค. 1. ์˜ค๋Š˜์€ templates ํด๋” ์•ˆ์— ์ถ”๊ฐ€๋กœ polls ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  index.html ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์คŒ 2. HttpResponse ์•ˆ์— ์งˆ๋ฌธ์„ ํด๋ฆญํ•˜๋ฉด question.id๊ฐ€ ์—ฐ๊ฒฐ๋˜๋„๋ก link ์†์„ฑ ์ง€์ •ํ•˜๊ธฐ 3. urls.py(polls URLConf) ํŒŒ์ผ์—์„œ question_id์— ๋Œ€ํ•œ URLConf์˜ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•จ 4. polls App์— ํ•ด๋‹น๋˜๋Š” URL๋กœ ์ง„์ž…(request)ํ•˜๋ฉด view๋กœ detailํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฏ€๋กœ ์ด๋ฅผ ์ •์˜ํ•ด์•ผ ํ•จ 5. templates/polls ํด๋” ์•ˆ์— detail๋ผ๋Š” HTML ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์คŒ 6. polls.. ๋”๋ณด๊ธฐ
2/14 ์›” ์›”์š”์ผ! ๐Ÿฑ‍๐Ÿ‰ ์ง€๋‚œ ๊ธˆ์š”์ผ์— ์ด์–ด PyCharm๊ณผ MySQL์„ ์ด์šฉํ•ด Django๋ฅผ ๋ฐฐ์šด๋‹ค! PyCharm์œผ๋กœ ์ง€๋‚œ๋ฒˆ์— ํ–ˆ๋˜ Project(MyFirstWeb_0214) ์ƒ์„ฑ, Django ์„ค์น˜ ๋ฐ MySQL ์—ฐ๋™์„ ๋˜‘๊ฐ™์ด ์ง„ํ–‰ํ–ˆ๋‹ค. 1. MySQL๋กœ DB Table์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, PyCharm์—์„œ Python ๋ชจ๋“ˆ ์ค‘ models๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ class๋ฅผ ๋งŒ๋“ฆ polls ํด๋”์˜ models.py ํŒŒ์ผ ์•ˆ์— class๋กœ DB Table ๋ช…์„ธ๋ฅผ ์„ค์ •ํ•จ. model class๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ model.Model์„ ์ƒ์†ํ•ด์•ผ ํ•จ. PK(Primary Key)๊ฐ€ ์ž๋™์œผ๋กœ ํ•˜๋‚˜ ์„ค์ •๋จ from django.db import models class Question(models.Model): # id = .. ๋”๋ณด๊ธฐ
2/11 ๊ธˆ ๐Ÿ˜Ž ์ด์•ผ์•„์•„์•„ ๋ถˆ๊ธˆ!! ๐Ÿ˜Ž ํ”„๋ŸฐํŠธ์—”๋“œ ๋๋‚ด๊ณ , ๋ฐฑ์—”๋“œ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. Python์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ Web Application Framework, Django! WSGI(Web Server Gateway Interface) : Web์„œ๋ฒ„๊ฐ€ ๋ฐ›์€ ํ˜ธ์ถœ์„ Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ  ์‘๋‹ต๋ฐ›๊ธฐ ์œ„ํ•œ ํ˜ธ์ถœ ์กฐ์•ฝ(Calling Convention) Private Physical Server ์œ„์˜ ๋…น์ƒ‰ ์„ ์œผ๋กœ ๊ทธ๋ ค์ง„ ๋ชจ๋“  ๊ฒƒ๋“ค์„ ํ•ฉ์ณ์„œ WAS(Web Application Server)๋ผ๊ณ  ๋ถ€๋ฆ„ Application์„ ๋‹ด์„ Web Server๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์‰ฌ์›€ ๊ทธ๋ฆฌ๊ณ  ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ง„ WSGI module๊ณผ WSGI Process๋ฅผ ํ•ฉ์ณ์„œ WSGI middleware๋ผ๊ณ  ๋ถ€๋ฆ„ ํ•˜๋‚˜๋กœ ๊ตฌ์„ฑ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ผ.. ๋”๋ณด๊ธฐ

728x90