파이썬 장고(django)는 웹 프레임워크이다. 프레임워크는 '소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트환경'을 말한다고 한다.(출처: 두산백과)

 

장고(django) 패키지를 실행하면 이미 짜여진 구조를 만들어준다. 여기서 우리가 원하는 기능만 추가 또는 수정해서 사용한다고 이해하면 될 듯 하다. 오늘은 파이썬 장고(django) 프로젝트 파일 구조에 대해서 알아보도록 하겠다.

 

파이썬 장고

 

 

1. 파이썬 장고 프로젝트 폴더와 파일 이름

파이썬 장고 프로젝트를 만들면 아래와 같은 이름의 폴더와 파일이 만들어진다.

 

* mytest: 루트디렉토리로 이름을 변경할 수 있다.
  ⌞ manage.py: runserver등 웹서버를 실행하고 관리하는 기능들을 수행할 수 있다.
  ⌞ mytest: 이름을 변경하면 여러가지 설정들을 많이 바꿔야 한다. 절대 바꾸지 말자.
     ⌞ __init__.py: 해당 디렉토리가 파이썬 모듈로 작동이 가능하도록 해주는 파일
     ⌞ settings.py: 설정을 기록해 놓은 파일
        ∙ SECRET_KEY: 패스워드를 암호화할 때 사용하는 키
        ∙ debug=true: 웹에서 오류가 났을 때 자세한 내용을 알려준다. 배포때는 false로 해야 한다
         ∙ ALLOWED_HOSTS= []: '*'을 입력해야 도메인 주소 뒤에 다른 값들의 입력도 허용된다
        ∙ LANGUAGE_CODE = 'ko-kr' : 언어코드로 한글로 설정해 준다.
        ∙ TIME_ZONE='Asia/Seoul' : 서버의 시간대로 서울로 해준다.
     ⌞ urls.py: 루트 url 설정 파일이다. 나중에 배포할 때 수정이 필요하다.
     ⌞ wsgi: 웹서버에 배포할 때 설정파일들을 연결해 주는 파이썬 파일

 

 

장고 프로젝트를 만들고 나서 원하는 기능을 추가하기 위해서는 새로운 장고앱을 추가해야 한다. 앱을 추가하는 방법을 아래와 같다. 아래 명령어를 실행할 때는 파이썬 가상환경을 실행하고 하도록 하자.

 

> python manage.py startapp <앱이름>

 

 

위와 같이 실행하고 나면 프로젝트 루트 디렉토리 밑에 해당하는 앱이름의 폴더와 파일들이 생성된다.

 

* mytest: 루트 디렉토리
  ⌞ mytest: __init.py, settings.py 가 들어있는 폴더 
  ⌞ <앱이름>
      ⌞ __init__.py: 해당 폴더가 파이썬 모듈로 작동이 가능하도록 해주는 파일
      ⌞ admin.py: 관리자가 접속하면 보이는 화면, 내장돼 있음
      ⌞ app.py: 앱을 등록하는 기능을 함
      ⌞ models.py: 장고 DB 관련된 파일 /  DB 사용계획, 정의, 연결 등의 다양한 설정들을 함
      ⌞ tests.py: 테스트를 위한 파이썬 파일
      ⌞ views.py: 화면 구성을 위한 파일
      ⌞ urls.py:  폴더 안에 없지만, 추가로 생성해서 사용해야 하는 파일
      ⌞ migrations/: 파이썸 모듈로 작동하는 폴더, 데이터 베이스 스키마 관련 역할을 함

 

 

2. 파이썬 장고 MTV구조

장고는 MTV구조로 이루어져 있다고 한다. MTV는 Model, Template, View의 앞글자를 딴 것이다. 이는 웹을 개발할 때 한 요소가 다른 요소에 영향을 주지 않다록 구분하여 설계하는 방식이다.

Model은 데이터를, Template는 사용자에게 보여주는 인터페이스를, View는 데이터를 처리하는 로직을 말한다.

 

이러한 구조에 맞게 프로젝트가 생성된 것으로 장고를 사용하다보면 차차 익숙해지지 않을까 한다.

 


오늘은 이렇게 장고의 프로젝트 구조에 대해서 알아보았다. 장고 프로젝트 구조는 해당 이름의 폴더에 가면 확인할 수 있고, 앱을 추가함에 따라 그에 따른 폴더 및 파일구조도 추가되는 것을 알 수 있었다.


다음 포스팅에서는 View에 해당하는 부분을 수정해서 화면 구성을 변경하는 작업들을 해보도록 하겠다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기