Web/django

03_django project, 장고 프로젝트

csmoon 2021. 9. 5. 23:20

프로젝트 생성

프로젝트를 생성할 때는 Python이나 Django에서 사용중인 이름은 피해야 하며 '-'도 사용할 수 없다.

$ django-admin startproject 프로젝트명 .

* 서버 실행

$ python manage.py runserver

 

프로젝트 구조

  • __init__.py
    • 빈 파일
    • Python에게 이 디렉토리를 하나의 Python 패키지로 다루도록 지시한다.

 

  • settings.py
    • 웹사이트의 모든 설정을 포함
    • 만드는 모든 application이 등록되는 곳이며, static files의 위치, database 세부 설정 등이 작성된다.

 

  • urls.py
    • 사이트의 url과 view의 연결을 지정

 

  • wsgi.py
    • Web Server Gateway Interface
    • 장고 어플리케이션이 웹서버와 연결 및 소통하는 것을 도와준다.

 

  • asgi.py
    • new in 3.0
    • Asynchronous Server Gateway Interface
    • 장고 어플리케이션이 비동기식 웹 서버와 연결 및 소통하는 것을 도와준다.

 

Application 생성

일반적으로 application의 이름은 복수형으로 작성하는 것을 권장한다.

$ python manage.py startapp 어플리케이션명

 

Application 구조

  • admin.py
    • 관리자용 페이지 관련 기능을 작성 하는 곳

 

  • apps.py
    • 앱의 정보가 있는 곳
    • 일단은 수정할 일이 없다.

 

  • models.py
    • 앱에서 사용하는 Model(Database)을 정의하는 곳

 

  • tests.py
    • 테스트 코드를 작성하는 곳

 

  • views.py
    • view가 정의 되는 곳

 

Application 등록

반드시 application 생성 후 등록 순서를 지켜야한다.

방금 생성한 application을 사용하려면 프로젝트에 등록 해야 한다.

# settings.py

INSTALLED_APPS = [
    'application명',
    ...,
]

* INSTALLED_APPS의 순서는 다음과 같이 작성하는 것이 좋다.

INSTALLED_APPS = [
    # Local apps
    
    # Third party apps

    # Django apps
]

* 언어 및 시간 설정하기

# settings.py

LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

 

프로젝트 작동하기

$ python manage.py runserver

이제 서버가 동작하기 시작했으니, 자신의 웹 브라우져에서 'http://127.0.0.1:8000/'을 통해 접속할 수 있다.

로켓이 이륙하는 모습이 담긴 《Congratulations!》 페이지를 보게된다면 성공적으로 서버가 작동을 한 것이다.

 

개발 서버는 요청이 들어올 때마다(코드가 저장될 때 마다) 자동으로 Python 코드를 다시 불러온다.

즉, 코드의 변경사항을 반영하기 위해서 굳이 서버를 재가동 하지 않아도 된다.

그러나, 파일을 추가하는 등의 몇몇의 동작(커스텀 필터, 새로운 모듈 추가 등)은 개발 서버가 자동으로 인식하지 못하기 때문에, 이런 상황에서는 서버를 재가동 해야 적용되는 경우도 있다.

'Web > django' 카테고리의 다른 글

04_django template language, 장고 템플릿 언어  (0) 2021.09.06
01_django install, 장고 설치하기  (0) 2021.09.05
00_django intro, 장고 소개하기  (0) 2021.09.05