<진행사항>
djangoMaster 생성
터미널에
python manage.py startapp [앱 이름]
python manage.py startapp home
앱 이름과 같은 폴더가 생성된다
앱을 만들면 꼭 해줘야 하는 과정이 있는데 바로 settings.py의 INSTALLED_APP 안에 앱을 추가하는 것
# djangoMaster>settings.py
INSTALLED_APP=[
...
'home',
]
home 앱 안에 templates 폴더 만들기>templates 폴더 안에 home 폴더 만들기>home 폴더 안에 hello.html 파일 만들기
-> home>templates>home>hello.html
<!-- home>hello.html -->
<h1>hello앱 안에 hello.html이야</h1>
templates 안에 home 폴더 만든 이유 : render에서 HTML 등 파일을 가져올 때 templates이름의 폴더에서 가져오는데, 만약 다른 앱(폴더)에 똑같은 이름의 다른 html이 있다면 다른 html을 가져올 수 있음->경로 확실하게 해줌
장고는 앱 하위에 있는 templates 디렉토리를 자동으로 템플릿 디렉토리로 인식한다.
함수(hello) 이름과 파일(hello.html) 이름을 동일하게 해준다.
해당 views에서 요청을 처리하여 응답을 한다.
함수 만들기
함수로 view를 짜보면
# home>views.py
def hello(request):
return render(request, '[어떤 HTML을 띄어줄건지-HTML경로가 들어가야함]')
def hello(request):
return render(request, 'home/hello.html')
home 앱 안에 hello.html을 가져온다.
# djangoMaster>urls.py
urlpatterns = {
path('',어디로가야하죠),
}
# djangoMaster>urls.py
from home.views import hello # home 앱 안의 views로부터 hello함수를 가져온다. hello 대신 *로 대체 가능하다.
...
urlpatterns = {
path('go_hello',hello), # 경로가 없을 때 hello이라는 함수로 가라
}
go_hello 경로일 때 hello라는 함수를 실행하고,
hello는 home 앱 안에 있는 views.py에 있는 hello라는 함수이다.
-> home의 views.py에 있는 hello 함수로 가면 home 앱 안에 hello.html을 반환한다.
http://127.0.0.1:8000/go_hello 로 들어가면
정상적으로 출력된다.