๐Ÿคฌ Find import path

Min-Ho Leeยท2020๋…„ 7์›” 4์ผ
0

Learn Django

๋ชฉ๋ก ๋ณด๊ธฐ
2/13
post-thumbnail

Saturday_July_4
.
.
.

TMI ์„œ๋ก 

์˜ค๋Š˜๋„ ํ•˜๋ฃจ์ข…์ผ ์žฅ๊ณ ์™€ ์”จ๋ฆ„ํ–ˆ๋‹ค.
์–ด์ œ๋Š” ๋ฌผ์Œํ‘œ๊ฐ€ 10๋งŒ๊ฐœ์˜€๋Š”๋ฐ ๊ทธ๋ž˜๋„ ์˜ค๋Š˜ ์ฒœ๊ฐœ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ”๋‹ค.
ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์–ด๋ ต๋‹ค ๐Ÿ˜ฉ

๊ทธ๋Ÿฐ๋ฐ ์žฅ๊ณ ๋ฅผ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘, import์™€ ๊ด€๋ จํ•ด ๊ถ๊ธˆ์ฆ์ด ์ƒ๊ฒผ๋‹ค.

๐Ÿ” ์ฐพ์•„๋ณด๊ธฐ

import json
from django.views import View
from django.http  import JsonResponse

class MainView(View):
    def get(self, request):
		    return JsonResponse({"Hello":"World"}, status=200)

๋‹ค์Œ์€ view.py ๋ผ๋Š” ํŒŒ์ผ์ด ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ๊ฑด viewํŒŒ์ผ์ด ๋ญ๊ณ , ์ € ํด๋ž˜์Šค๋Š” ๋ญ๊ณ  ํ•˜๊ธฐ ์ „์—,
๋‚ด๊ฐ€ ๊ณต๋ถ€ํ–ˆ๋˜ import์˜ ๊ฐœ๋…์œผ๋กœ๋Š”

"View์™€ JsonResponse๋Š” ํด๋ž˜์Šค๋‹ˆ๊นŒ
from์œผ๋กœ ๊ฐ€์ ธ์˜จ views์™€ http๋Š” ๋ชจ๋“ˆ์ด๊ฒ ๊ตฌ๋‚˜,
๊ทธ๋Ÿฌ๋ฉด .py ๋กœ ๋๋‚˜๋Š” ํŒŒ์ผ์ด๊ฒ ์ง€?"

๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ์žฅ๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ git clone์œผ๋กœ ๋ฐ›์•„์„œ ์ฐพ์•„๋ณด์•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  django์•ˆ์— views๋ผ๋Š” ํŒŒ์ผ๊ณผ http๋ผ๋Š” ํŒŒ์ผ์„ ์ฐพ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์†Œ๋ฆ„์ด ๋‹๊ฒŒ views๋ผ๋Š” ํŒŒ์ผ๊ณผ http๋ผ๋Š” ํŒŒ์ผ์€ ๋””๋ ‰ํ† ๋ฆฌ์˜€๋‹ค.

์•„์ง ์ฝ”๋ฆฐ์ด ๋‹ต์— ๋‚˜ ํ˜ผ์ž ์ด์ƒํ•œ ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ์ƒ์ƒ์˜ ๋‚˜๋ผ๋ฅผ ํŽผ์น˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

"์ผ๋‹จ ๋””๋ ‰ํ† ๋ฆฌ์ธ๊ฑด ํ™•์ธํ–ˆ์œผ๋‹ˆ View์™€ JsonResponse๋Š” ์ง„์งœ .py๋กœ ๋๋‚˜๋Š” ํŒŒ์ผ์ด๊ฒ ์ง€?
๊ฐœ๋ฐœ์ž๋“ค์ด ์ด๋ฆ„์„ ๋Œ€๋ฌธ์ž๋กœ ์ฃผ๋ฉด์„œ ๋‚  ์†์ด๋ ค๊ณ  ํ•˜๋Š”๊ฑฐ๊ฒ ์ง€??"

๊ทธ๋ฆฌ๊ณ ๋Š” django์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์ธ http์™€ views ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ์•„๋ดค๋‹ค.

๊ทธ๋“ค์€ ์กด์žฌํ•˜์ง€ ์•Š์•˜๋‹ค...

๊ทธ๋ž˜์„œ ๋„ˆ๋ฌด ๋‹ต๋‹ตํ–ˆ๋Š”๋ฐ, ์˜†์— ์žˆ๋˜ ๋™๊ธฐ๊ฐ€ ์ฐฐ๋–ก๊ฐ™์€ ์„ค๋ช…์„ ํ•ด์ฃผ์—ˆ๋‹ค.

__init__.py

์ด ์นœ๊ตฌ๋ฅผ ์ž˜ ๋ณด๋ผ๊ณ . ๊ทธ๋ž˜์„œ http ๋””๋ ‰ํ† ๋ฆฌ์˜ init ์นœ๊ตฌ๋ฅผ ์‚ดํŽด๋ณด์•˜๋‹ค.

๐Ÿค” JsonResponse๋ฅผ ์ฐพ๊ธด ์ฐพ์•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ €

__all__ ๐Ÿ‘ˆ

์ด๋ผ๋Š” ์นœ๊ตฌ๋Š” ๋ญํ•˜๋Š” ์นœ๊ตฌ์ธ์ง€ ๋ดค๋”๋‹ˆ ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด

์ € django.http.response ์˜ JsonResponse๋ฅผ ์ž„ํฌํŠธ ํ•œ ์นœ๊ตฌ๋ฅผ

__all__

์ด๋ผ๋Š” ๊ณณ์— ๋„ฃ์–ด์ฃผ๋ฉด ์น˜ํ™˜?? ํ•˜๋“ฏ์ด ์ค„์—ฌ์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.(์„ค๋ช… ๋ชปํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค ใ… )

๋‹ค์‹œ, ํ˜„์žฌ ์œ„์น˜๋Š” http ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” init ํŒŒ์ผ์ด๊ณ , ๊ทธ ํŒŒ์ผ์—์„œ importํ•œ ๋ชจ๋“ˆ์ด๋‚˜ ํŒจํ‚ค์ง€๋ฅผ all ์ด๋ผ๋Š” ๊ณณ์— ๋„ฃ์–ด์ฃผ๋ฉด http๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์—์„œ๋Š” ์น˜ํ™˜? ํ•˜๋“ฏ์ด ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ๋‹ค์‹œ ๋งจ ์ฒ˜์Œ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด

import json
from django.views import View
from django.http  import JsonResponse

class MainView(View):
    def get(self, request):
		    return JsonResponse({"Hello":"World"}, status=200)

JsonResponse ๋ผ๋Š” ํด๋ž˜์Šค๋Š” http๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์•ˆ ์–ด๋”˜๊ฐ€์— ์žˆ์ง€๋งŒ, init ํŒŒ์ผ์—์„œ ์น˜ํ™˜ ๋น„์Šค๋ฌด๋ฆฌํ•˜๊ฒŒ ํ•ด์คฌ๊ธฐ ๋•Œ๋ฌธ์— ์•„๊นŒ init ์—์„œ ์–ด๋–ป๊ฒŒ ์น˜ํ™˜ํ•ด์ฃผ์—ˆ๋Š”์ง€๋ฅผ ๋ณด๋ฉด ๋œ๋‹ค.

์•„๊นŒ ๋ณด๋‹ˆ๊นŒ init ํŒŒ์ผ์—์„œ JsonResponse๋ผ๋Š” ๋†ˆ์„ ์–ด๋–ป๊ฒŒ import ํ–ˆ๋‚˜ ๋ดค๋”๋‹ˆ
django.http.response ๋ฅผ ํ•˜๊ณ  JsonResponse ๋ฅผ import ํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋ถ„๋ช… JsonResponse๋ผ๋Š” ํด๋ž˜์Šค๋Š” django.http.response ๋ชจ๋“ˆ ์•ˆ์— ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๐Ÿคฉ ์ฐพ์•˜๋‹ค

โญ๏ธ ๊ฒฐ๋ก 

๊ฐœ๋ฐœ์ž๋“ค์ด ํ•˜๋‚˜ ํ•˜๋‚˜ import๋ฅผ ํ•  ๋•Œ ๋งˆ๋‹ค django.http.response๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ๊ท€์ฐฎ์œผ๋‹ˆ
init์—์„œ ์น˜ํ™˜? (๋ญ๋ผ๊ณ  ํ•ด์•ผ๋˜์ง€ ใ… ) ์„ ํ•ด์ฃผ๋ฉด์„œ http์— ์กด์žฌํ•˜๋Š” ํŒŒ์ผ๋“ค์— ํ•œํ•ด์„œ๋Š”
๊ทธ๋ƒฅ JsonResponse๋ผ๊ณ  http๊นŒ์ง€๋งŒ ๊ฐ€์ ธ์™€์„œ ์จ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์„œ ์›ํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

profile
๐Ÿ‡ Rabbit can take a rest, but ๐Ÿข turtle can't

0๊ฐœ์˜ ๋Œ“๊ธ€