๐Ÿ‘จโ€๐Ÿ’ป Django์—์„œ ๋ณด๊ธฐ ๋ฐ ๋ผ์šฐํŒ…์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ(8๋ถ€) - Django For Beginners

2839 ๋‹จ์–ด pythondjangowebdevbeginners
์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์•ฑ์˜ ์•ฑ์— ๋Œ€ํ•ด ๋ณผ ์‹œ๋ฆฌ์ฆˆDjango For Beginners์˜ ์ผ๋ถ€์ด๋ฉฐ ์ด ๋ถ€๋ถ„์—์„œ django์˜ ๋ชจ๋ธ์— ๋Œ€ํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ „์ฒด ๊ฒŒ์‹œ๋ฌผhere์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒŒ์‹œ๋ฌผ์—์„œ ์šฐ๋ฆฌ๋Š” ๋ณด๊ธฐ์™€ ๋ผ์šฐํŒ…์˜ ๊ฐœ๋…์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ดํ•ดํ•˜๊ณ  ๋ช‡ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์‘๋‹ต์„ ํ™•์ธํ•œ ๋‹ค์Œ ๊ธฐ๋ณธ ๋ผ์šฐํŒ…์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ๋ณ„๋„์˜ ํŒŒ์ผ ํŒŒ์ผ์—์„œ ๋ถ„๋ฆฌurls.pyํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์กฐํšŒ์ˆ˜๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?



๋ณด๊ธฐ๋Š” ์„œ๋ฒ„์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต ์‚ฌ์ด์˜ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•˜๋ฉฐ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋…ผ๋ฆฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒŒ์‹œ๋ฌผ์˜ ๋’ท๋ถ€๋ถ„์—์„œ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ณธ์งˆ์ ์œผ๋กœ ์š”์ฒญ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‘๋‹ต์€ text , html , json , xml ๋“ฑ ๋‹ค์–‘ํ•œ ์œ ํ˜•์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋ณด๊ธฐ์˜ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

from django.http import HttpResponse

def home_response(request):
    return HttpResponse("Hello World ๐Ÿ˜Š.")


์ตœ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์€ ์šฐ๋ฆฌ๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ด๊ฒƒ์„ view function๋ผ๊ณ  ๋ถ€๋ฅผ ๋•Œ ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ ์‘๋‹ต, ์ฆ‰ Hello World ๐Ÿ˜Š.๋ฅผ ๋ฐ˜ํ™˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„์˜ request ๋ณด๊ธฐ์—์„œ home_response ์ธ์ˆ˜์— ๋Œ€ํ•ด ์•Œ์•„์ฐจ๋ ธ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ธ์ˆ˜๋Š” dictionary ๊ฐœ์ฒด์ด๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์š”์ฒญ์— ๋Œ€ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. request ๊ฐœ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ—ค๋”, ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ, IP, ์ฟ ํ‚ค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ์˜ˆ์—์„œ ์šฐ๋ฆฌ๋Š” text ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ–ˆ์ง€๋งŒ ์‹ค์ œ ์„ธ๊ณ„์—์„œ๋Š” ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ๋งž์ฃ  ๐Ÿค” ? ์‹ค์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” html ์‘๋‹ต์ด๋‚˜ json ๋˜๋Š” xml๋ฅผ ์‘๋‹ต์œผ๋กœ ์ฆ๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์‘๋‹ต์œผ๋กœ html๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

from django.http import HttpResponse

def home_response(request):
    return HttpResponse("<h1>Hello World ๐Ÿ˜Š.</h1>")


์‘๋‹ต์œผ๋กœ HTML ํŽ˜์ด์ง€ ๋ฐ˜ํ™˜



๋‚˜๋Š” ๊ฒŒ์œผ๋ฅด๋ฏ€๋กœ ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ํ‰๋ฉด ํ…์ŠคํŠธ ์‘๋‹ต๊ณผ wallah ์ฃผ์œ„์— <h1></h1> ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ html ์‘๋‹ต์ด์ง€๋งŒ ๊ธด html ์‘๋‹ต์— ์ข‹์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์ฝ”๋“œ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  html ์›์น™์„ ๋”ฐ๋ฅด๋„๋ก views๋ฅผ DRY์—์„œ ๋ฉ€๋ฆฌ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉํ•ดํ•ด์„œ ๋ฏธ์•ˆํ•˜์ง€๋งŒ ์ž‘์€ ๋ธ”๋กœ๊ทธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค๋Š” ํ•œ ๊ฐ€์ง€ ๋ง์”€์„ ๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ณ„์† ์ฝ์–ด๋ณด์‹œ๋ฉด ์ €์—๊ฒŒ ๋งŽ์€ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹คhere.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ