Django는 어떻게 작동할까?

이대현·2020년 6월 1일
3

Django

목록 보기
2/11

web_flow

한 html 파일을 웹 서버에 띄우기 위해서, django는 어떤 일을 할까? 웹서버에 HELLO WORLD 를 출력하는 가장 간단한 장고 프로젝트를 통해 장고 내에서 html 파일, 즉 정보들이 어떻게 처리되는지 알아보자.

1. Django 프로젝트 시작하기

가상환경이 켜진 상태에서 아래 명령어를 입력해 프로젝트 폴더를 만든다.

django-admin startproject [프로젝트 이름]

프로젝트 이름을 helloworld 라고 했다고 가정하자.

그러면 helloworld 라는 폴더가 생기고, 그 안에 또 helloworld 폴더와 manage.py 파일이 생성된다. 같은 이름의 폴더가 두 개여서 헷갈릴 수 있으니 상위폴더 이름을 helloworld_project 같은 식으로 바꿔주는 게 좋다!

startproject 로 생성된 폴더 및 파일들

  • helloworld_project
    • helloworld
      • settings.py : 프로젝트의 환경/구성을 저장하는 파일
      • urls.py : Django 프로젝트의 URL 들을 관리하는 파일
      • 기타 아직은 덜 중요한 파일들
    • manage.py : 서버를 작동시키는 중요한 파일

나의 첫 장고 프로젝트(폴더)가 시작됐다. 이제 모든 작업은 helloworld_project 에서 이뤄질 것이다. 터미널 경로를 프로젝트 폴더(manage.py가 있는 폴더) 안으로 이동해주자.

2. app 만들기

app(폴더)는 프로젝트의 구성 단위이다.

나중에 프로젝트가 커지면 기능별로 여러 app을 만들어야하겠지만, 지금 이 프로젝트에서는 hello world를 출력하기 위한 app은 하나만 있으면 된다.

python manage.py startapp [앱 이름]

앱 이름을 print 라고 지었다면, 프로젝트 폴더 안에 print 라는 폴더가 하나 생겼을 것이다.

template 폴더 만들기

print 앱 폴더 안에 template 라는 폴더를 하나 만들어줘야 한다. template는 유저가 보는 화면이라고 생각하면 되는데, helloworld.html 같은 html 파일들을 이 폴더에 만들고 관리하면 된다.

startapp 까지 완료했을 때의 장고 프로젝트는 아래 같은 모습이어야 한다.

  • helloworld_project
    • helloworld
      • urls.py
      • settings.py
      • 기타 아직은 덜 중요한 파일들
    • manage.py
    • print
      • template 폴더
        • helloworld.html
      • views.py : html 파일을 처리하는 '함수'를 작성하는 파일
      • 기타 아직은 덜 중요한 파일들

가장 기본적인 장고 프로젝트는 볼드 처리 된 5개의 파일들 간의 연결을 통해 완성된다.

장고의 작동 원리를 알고 싶다면,

settings.py , helloworld.html, views.py, urls.py , manage.py 파일들끼리 서로 데이터를 어떻게 처리하고 연결하는지 흐름을 이해하면 되는 것이다.

3. Run Django 7단계

정리하자면, 장고는 한 프로젝트 폴더와 앱 폴더, 그리고 각 폴더 속 파일들 간의 티키타를 통해 작동한다. 여기서 가장 중요한 파일들은 위의 5가지이고, 이 파일들 간의 티키타카는 7단계로 요약할 수 있다. 즉, 이 7단계의 작업 순서만 알고 있으면 장고 프로젝트를 완성할 수 있는 것이다.

1) 프로젝트 생성

2) 앱 생성

3) 프로젝트와 앱 연결 : setting.py

4) template 생성 : helloworld.html

5) 앱 기능 구현 : views.py

6) URL 요청을 views에 연결 : urls.py

7) 서버 실행 : manage.py


물론, 모든 장고 프로젝트가 이렇게 간단하진 않다. 나중에는 데이터베이스를 관리하기 위해 models.py 파일도 작성해야하고, 앱이 여러 개인 큰 프로젝트를 진행할 때는 url들도 여러 파일로 나눠 관리해야 편하다.

이 7단계의 Django 작동 원리는 장고 프로젝트를 처음 시작하는 입장에서 이해하기 편하도록 정보의 흐름을 최대한 정형화해서 요약한 내용일 뿐이다.

그럼, 다음 글에서 이 7단계의 작업 방식을 통해 서버에 HELLO WOLRD를 출력하는 프로젝트를 마저 완성해보자!

profile
삽질의 기록들 👨‍💻

0개의 댓글