개발/Django

PythonWeb/Django - 프로젝트 생성

잇(IT) 2022. 4. 4. 23:31
728x90

- 프로젝트를 생성한다.

 

- 터미널에 명령어를 입력하여 장고를 설치한다.

 

- '현재 폴더에 파일들을 만들겠다'라는 의미다. 장고 프로젝트를 만들면 config 폴더가 생기고 manage.py라는 파일이 만들어 진다.

 

- 장고로 프로젝트를 생성했기 때문에 당장이라도 웹 사이트를 사용할 수 있는 상태다. 하지만 DB를 생성해야 한다.

  위의 명령어를 입력해 DB를 초기화 하면서 DB 파일을 생성한다.

  명령어를 입력하게 되면 다음과 같이 db.sqlite3가 생성된 것을 알 수 있다.

 

- config 폴더 : 프로젝트 설정 파일과 웹 서비스 실행을 위한 파일이 들어 있다.

 

- __init__.py : 파이썬 2.x대 버전과의 호환을 위해 만들어진 비어있는 파일이다. 3.x대에서는 불필요하지만 계속 생성된다. 없어도 상관없다.

- setting.py : 프로젝트 설정에 관한 다양한 내용이 들어 있다.

- url.py : 특정 기능을 수행하기 위해 접속하는 주소를 URL이라고 하고 이를 설정해 주는데, 그 설정을 이 파일에 기록한다. 한 프로젝트 안에 여러개의 urls 파일을 만들 것이다. config 폴더 안에 있는 urls 파일이 최초로 탐색되는 기준 URL 파일이다. 기준 URL 파일은 settings.py에서 변경할 수 있다.

- wsgi.py : 웹 서비스를 실행하기 위한 WSGI 관련 내용이 들어 있다. 특별히 변경할 일은 거의 없다.

 

- venv 폴더 : 프로젝트 구동에 필요한 가상환경이 들어있는 폴더다. 되도록 수정이나 삭제를 하지 않는 것이 좋다.

 

- db.sqlite3 : SQLite3 DB 파일이다. SQLite DB를 사용할 경우 임의로 삭제하거나 위치를 이동하면 안된다. 다만 다른 DB로 변경할 경우 필요 없는 파일이다.

 

- manage.py : 장고의 다양한 명령어를 실행하기 위한 파일이다. 임의로 변경하지 않도록 주의한다.

 

- settings.py

프로젝트에 관련된 다양한 설정이 모두 들어있다. 물론 파일에 기록되어 있지 않은 내용들이 있지만 그 내용들은 장고 기본 값으로 사용된다. django/conf/global_settings.py 파일에 있다.

- BASE_DIR : 프로젝트 루트 폴더, 설정 파일이나 py파일 등에서 프로젝트의 루트 폴더를 찾아 그 하위를 탐색한다거나 하는 일들을 수행한다. 변수로 미리 준비해두는 값

- SECRET_KEY : 다양한 보안을 위해 사용한다. 세션 값의 보호나 비밀번호 변경 시 사용되는 보안 URL을 만드는 등의 일에 주로 사용된다.

- DEBUG : 디버그 모드를 설정한다. True일 경우 다양한 오류 메시지를 즉시 확인 할 수 있다. 실제로 배포 할 때는 False로 바꾸며, 이때는 다른 설정값을 이용해 관리자가 오류 메시지를 받아 볼 수 있다.

ALLOWED_HOSTS : 현재 서비스의 호스트를 설정한다.

INSTALLED_APPS : 장고 웹 서비스는 다양한 앱의 결합으로 만들어진다. 현재 프로젝트에서 사용하는 앱의 목록을 기록하고 관리한다.

MIDDLEWARE : 장고의 모든 요청/응답 메시지 사이에 실행되는 특수한 프레임워크들이다. 주로 보안에 관한 내용들이 많다.

ROOT_URLCONF : 기준이 되는 urls.py 파일의 경로를 설정한다.

TEMPLATES : 장고에서 사용하는 템플릿 시스템에 관한 설정들이다. 템플릿 해석 엔진과 템플릿 폴더의 경로 등을 변경하는데 쓰인다.

WSGI_APPLICATION : 실행을 위한 WSGI 어플리케이션을 설정한다.

DATABASES : DB 관련 설정이다.

AUTH_PASSWORD_VALIDATORS : 비밀번호 검증을 위한 설정

LANGUAGE_CODE 등 : 이하 내용은 다국어에 관한 설정이다.

 

- wsgi.py : WSGI 어플리케이션 구동을 위해 사용되는 파일이다. 실제로는 웹 서버와 장고 애플리케이션 사이에 통신 역할을 담당하는 것이 WSGI이다. 웹 서버와 장고 웹 애플리케이션 사이에서 미들웨어처럼 동작한다.

728x90