프레임워크란 개발을 도와주는 하나의 틀.
장고는 웹 프레임워크로, 웹 서비스를 만들 수 있게 도와주는 파이썬 틀이라고 생각하면 된다.
장고 말고 다른 파이썬 기반 웹 프레임워크로는 Flask,Pyramid 등이 있다. 이 둘의 경우에는 서버를 만들기 위한 최소한의 기능들만 제공을 하고 있다.
하지만 Django의 경우에는 웹서비스 개발에 필요한 공통적 요소들이 미리 구현이 되어 있다. 그래서 일부러 작성하지 않아도 미리 구현된 기능들이 있어서 편하게 구현이 가능하다. 또한 커뮤니티와 문서가 잘 되어 있어서 공부하기에도 편한 편이라고 한다.
장고는 MVT패턴에 따라서 동작하며, ORM이라는 모델을 이용해서 DB와 소통한다.
View는 실질적으로 프로그램이 동작하는 부분이며, 기능들을 만들 때 작업하는 부분이다.
템플릿은 사용자에게 보여지는 부분으로, 사용자가 HTML파일을 본다고 하면 템플릿 부분에서 사용자에게 HTML파일을 전달하게 되는 것이다.
Object Relational Mapping
데이터베이스의 테이블을 객체처럼 사용할 수 있도록 하는 기술로 Class 구현하듯이 사용하면 된다. 데이터베이스를 다루기 위한 쿼리를 작성하지 않아도 데이터베이스를 다룰 수 있게 해준다.
New Project를 누르고 장고를 선택해 새로운 장고 프로젝트를 만들어준다. 이 때 New environment using에 Virtualenv를 선택해 가상환경에서 사용할 수 있도록 한다.
빨간색의 파일들은 장고 프로젝트를 생성하면서 자동으로 생성된 파일들이다. 첫번째 시간에서 강조한 건 settings와 urls파일이다.
이 중에서 urls파일에 들어가서 그 파일을 실행시키면
이렇게 url이 나오게 되는데, 링크를 클릭하면 장고에서 기본적으로 만들어 놓은 페이지를 보게 된다.
이 공간을 채우기 위해서 MVT에서 V를 담당할 views.py파일을 하나 만든다.
from django.http import HttpResponse
def base_response(request):
return HttpResponse("안녕하세요! 장고의 시작입니다!")
HttpResponse는 괄호 안의 내용을 전달해주는 역할을 한다.
그래서 이를 이용한 base_response라는 함수를 정의해주고 urls.py로 다시 가서
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test/',views.base_response, name='first_test')]
views를 임포트 한 뒤, urlpatterns에 path를 추가해주면 된다.
test라는 url로 base_response라는 함수와 연결시킨다고 생각하면 될 것 같다. 이렇게 하면 test페이지에 HttpResponse를 통해 받아온 내용이 보이게 된다.
위는 텍스트를 받아서 페이지에서 보여준것이고 html 파일을 가지고 받아올 수도 있다고 하는데, html 파일의 경우 위에서 자동으로 생겼던 template폴더에 저장해주면 된다.
그리고 다시 views.py로 와서
from django.shortcuts import render
def first_view(request):
return render(request,'my_test.html')
render를 임포트 해주고, html파일을 렌더링 해주도록 first_view함수를 만들어준다.
urlpatterns = [
path('admin/', admin.site.urls),
path('test/',views.base_response, name='first_test'),
path('first/',views.first_view, name='first_view'),
]
위와 동일하게 first라는 페이지와 first_view함수를 연결해주면
first 페이지에서 이렇게 html로 작성했던 내용을 볼 수 있다.