views.py와 urls.py
views.py
- Django에서의 뷰(View)는 다른 일반 MVC Framework에서 말하는 Controller와 비슷한 역할 을 한다.
- 즉, View는 필요한 데이터를 모델(model)에서 가져와서 적절히 가공하여 웹페이지 결과를 만들도록 컨트롤하는 역할을 한다.
(ex. Views.py에서 Front-End 에서 오는 HTTP Request를 입력 parameter로 받아들이고, HTTP Response를 return해주는 View를 만들수있다.)
urls.py
- Django내에서 Web service를 제공하는데 url를 넘기기 전에 main페이지와 각 app들과 url를 mapping해주는 기능을 django ulrs.py에서 지원한다.
- app들이 다양해지고 app하위에 또다른 기능들이 생기면 main urls.py에서 모든 url를 mapping하지 않고 하위 app urls.py에 각 기능에 대한 url를 위탁할 수 있다.
1. views.py 만들기
import json
from django.views import View
from django.http import JsonResponse
class MainView(View):
def get(self, request):
return JsonResponse({"message":"Hello World"}, status=200)
- MainView 라는 클래스의 get methode가 request를 받아 JsonResponse를 "message":"Hello World"와 status code 200을 보낸다( 여기서 status code는 정상적인 통신일 때 200 code를 보낸다)
2. views.py와 urls.py 연결
from django.urls import path
from main.views import MainView
urlpatterns = [
path('', MainView.as_view())
]
- urlpatterns의 path함수는 url과 명령을 연결하는 역할을 한다.
- path함수의 첫번째인자는 ''으로 root URL를 가르킨다.
- path함수의 두번째인자는 views.py에서 정의한 MainView라는 클래스를 가르킨다.
3. runserver
- 위와 같이 수정된 내용을 바탕으로 Server를 실행하여 http request를 요청하고 요청한 값을 response 받아본다
- runserver는 manage.py가 있는 디렉토리에서 실행한다
(project) $ ls
sampleproject manage.py blog
(project) python manage.py runserver
October 26, 2018 - 07:06:30
Django version 2.1.2, using settings 'sampleproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
4. Request & Response
Httpie
- http request 테스트를 위해 httpie등 request프로그램으로 테스트를 실행한다
(project) $ http -v localhost:8000
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:8000
User-Agent: HTTPie/0.9.8
HTTP/1.1 200 OK
Content-Length: 26
Content-Type: application/json
Date: Tue, 28 Jan 2020 04:16:38 GMT
Server: WSGIServer/0.2 CPython/3.7.5
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"message": "Hello World"
}
http web
- web 브라우저를 통해 url에
127.0.0.1:8000
으로 확인하면 다음과 같은 결과를 확인 할 수 있다.
안녕하세요.
파이썬 정리 깔끔해서 따라 하는 중인데
Views.py 파일은 어디에 있어야하죠?
account 폴더는 없으시던데 Ulrs.py 경로도 어딘지.. 자세히 부탁드립니다.