수학과의 좌충우돌 프로그래밍

[Django] 02. Django 시작, Hello World 출력 본문

웹프로그래밍/Django

[Django] 02. Django 시작, Hello World 출력

ssung.k 2019. 2. 13. 01:51

안녕하세요 강민성입니다.


이번 시간에는 django의 기초적인 파일들을 살펴보고


작동원리를 알아보며 기본적인 Hello World 를 출력해보도록 하겠습니다.



Django를 시작하자



저번 시간에 만들었던 Django 디렉토리에 HelloWorld 라는 디렉토리를 만들어


이 안에서 실습을 진행하도록 하겠습니다.


여러분은 편한 곳에서 작업하시면 되겠습니다.


https://ssungkang.tistory.com/entry/Django-01-%EA%B8%B0%EB%B3%B8%ED%99%98%EA%B2%BD%EC%85%8B%ED%8C%85-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0


매 실습마다 가상환경에서 작업을 진행할 예정이므로 


위의 링크를 참고하셔서 진행하시면 되겠습니다.


자세한 설명은 생략하고 가상환경 및 django 설치 후 진행하도록 하겠습니다.



project 만들기



가장 먼저 해야할 일은 project를 만드는 일입니다.


django-admin startproject {project의 이름}

저는 myproject 라는 이름의 project를 만들어보겠습니다.


django-admin startproject myproject


그 결과 myproject라는 디렉토리가 만들어지고,


그 아래 같은 이름을 가진 디렉토리와 manage.py가 만들어지고,


그 안에는 정체를 알 수 없는 많은 파일들이 존재합니다.


이 파일들이 무엇인지는 차차 알아가도록 합시다.





서버 실행시키기



다음으로는 django 서버를  실행시켜보도록 하겠습니다.


그 전에 현재 HelloWorld 디렉토리에 있으니까 myproject 디렉토리로 이동하도록 하겠습니다.


cd myproject


그 후 서버를 커주면,


python manage.py runserver


아래와 같이 http://127.0.1:8000/  라는 주소가 나오게 되고


내 로컬에서 포트번호 8000으로 접속하면 장고서버로 접속할 수 있다는 의미입니다.




따라서 위의 주소로 들어가보면


로켓모양이 나오고 축하한다는 메세지를 받을 수 있으실겁니다.

control + c 를 통해서 서버를 끌 수 있으니 끄고 이어서 해보도록 합시다.




앱 만들기



다음으로는 앱을 만들어보도록 하겠습니다.


앱이란 프로젝트의 구성 단위로서 여러 앱이 모여서 project를 만듭니다.


물론 하나의 앱으로도 project를 구성할 수 있고요.


앱은 보통 기능별로 세분화하는데 아직은 여러 앱이 필요가 없으므로 


하나의 앱으로 진행을 하겠습니다.


앱을 만드는 명령어는 다음과 같습니다.


python manage.py startapp {앱 이름}


저는 myapp 이라는 이름의 앱을 만들어보도록 하겠습니다.


그 결과, 부모 myproject 안에 myapp 이라는 디렉토리가 생겼고


그 안의 여러 개의 파이썬 파일들이 생겼습니다.





이제는 만든 앱을 프로젝트와 연결시켜줘야합니다.


프로젝트에게 등록을 하는 것인데 자식 myproject 안의 settings.py 에서 등록을 할 수 있습니다.


      


settings.py 안에 보면 INSTALLED_APPS 라는 리스트가 있을 텐데 그 리스트에 추가를 해줍니다.


'{app이름}.apps.{app이름(맨 앞이 대문자)}Config'



html 파일 만들기


이제 화면에 보여질 html 파일을 만들어 줘야 합니다.


이 html 파일은 한 개일 수도 있지만 여러 개의 html 파일이 존재할수도 있기 때문에


templates 라는 디렉토리를 만들고 이 안에 담아줘야 합니다.


templates 의 위치는 위에서 만든 앱 바로 밑에 만들어주면 됩니다.


그리고 templates 안에 원하는 html 을 담아주겠습니다.


저는 Hello World라는 내용을 담은 home.html 을 만들어주었습니다.


      




동작을 하는 함수 만들기


함수는 myapp 안에 views.py 에서 정의해줄 수 있습니다.


request가 들어왔을 때 home.html 을 불러주는 함수입니다.


자세한 건 뒤에 가서 더 설명드리도록 하겠습니다.


      





url 설계 하기


이제 url 을 설계해야합니다.


url 설계가 어떤 의미가 있냐면,


해당 url로 접근 시, views.py 에 있는 함수를 실행시키고, 그 함수가 html 파일을 띄워주는 원리입니다.


url 은 자식 myproject 안에 urls.py에서 처리해줄 수 있습니다.


먼저 함수를 실행시켜야 하기 때문에 myapp 에 있는 views 를 import 해줍니다.


다음으로 새로운 path를 추가해주는데


'' 과 같은 상황에서 myapp 안에 views 안에 home 함수를 실행시켜라 라는 의미입니다.


여기서 '' 같은 상황이라는 것은 우리의 주소 뒤에 붙는 내용을 의미합니다.


예를 들어 http://127.0.1:8000/  라는 주소 뒤에 첫 번째 path 처럼 admin/ 붙여주면 admin page가 열리게 되고.


두 번째 path 처럼 아무것도 붙여주지 않으면 home 함수를 실행해서 home.html 이 열리게 됩니다.


그리고 이 path의 이름은 home 이라고 지정을 해주었습니다.


    



결과 확인


다시 서버를 실행시키고 웹을 새로고침해주면 


우리가 원하던 Hello World 를 확인 할 수 있습니다.



마무리



실습을 따라하다보면 오류가 굉장히 많이 나올 것입니다.


오타도 많이 나고, 여러 가지 이유로 오류가 발생하는데


처음에는 저장하는 습관이 들지않아 오류가 생기는 경우도 많습니다.


파일을 다 수정하신 후에는 꼭 저장하는 거 잊지마시기 바랍니다 :)



Comments