장고 프로젝트 구조, 시작하기

justyoon·2023년 4월 8일
0

AI5 Python/Django

목록 보기
23/31
post-thumbnail

📁 my_project

🔷 __init__.py
🔷 settings.py
🔷 urls.py
🔷 wsgi.py
🔷 asgi.py

장고 프로젝트 시작하기

django-admin startproject [project name] .

뒤에 .을 붙여야 파일안에 파일이 생기지 않고 바로 생성된다

python manage.py startapp [application name]

앱파일 생성

🔷 __init__.py

  • 파이썬에게 해당 디렉토리를 하나의 파이썬 패키지로 다루도록 지시해주는 파일

🔷 settings.py

  • 프로젝트 전체의 setting 설정/관리하며 모든 필드 설정이 포함되어 있는 파일. (애플리케이션 설치, 템플릿을 어디에 둘지, WSGI를 어떻게 쓸지, DB는 어디에 연결 할지, 인증은 어떻게 할지, (국제화)i18n 관련 언어 시간대 설정은 어떻게 할지, Static files 어떻게 할지 등등)
INSTALLED_APPS - 장고에 설치 된 앱들
MIDDLEWARE - 사용자 요청/응답 사이에서 작동하는 시스템들
TEMPLATES - 나의 html파일을 자동으로 인식
DATABASES - 내가 사용할 데이터베이스 연동 설정
AUTH_PASSWORD_VALIDATORS - 패스워드 보안 수준 검증
LANGUAGE_CODE - 화면에 어떤 언어를 보여줄것인지
TIME_ZONE - 우리가 어떤 시간에 있는지

🔍 SQLite3

  • Flask는 DB를 탑재해 주지 않기 때문에 따로 MongoDB를 연결해서 사용했지만, Django는 SQLite3를 탑재하고 있기때문에 DB연동과정 필요없이 바로 시작할 수 있습니다.
  • 다만 SQLite3 자체의 성능이 그리 높지 않기 때문에 MySQL을 따로 연동하던가 MongoDB를 연동해서 쓸 수 있습니다.
  • 주로 안드로이드 모바일 앱 환경에서 자주 사용하는 DB입니다.

🔷 urls.py

  • 장고의 url (API주소)를 관리 하는 곳 입니다.
  • Flask를 할 때는 모든 def와 함수를 만들 때 그 위에 url을 작성했습니다.
  • Django에서는 url을 구분하고 '어느함수와 연결 할지'만 정하면 됩니다.

함수와 url의 연결을 쉽게 파악하고 깔끔한 구조를 만들 수 있다.

🔷 wsgi.py

  • WSGI(Web Server Gateway Interface)는 웹 서버와 웹 애플리케이션이 어떻게 통신하고, 어떤 방식으로 웹 애플리케이션이 외부 요청에 같이 연결 되는지를 설계한 개념입니다. 자세한 내용은 이곳에서

🔷 asgi.py

  • ASGI(Asynchronous Server Gateway Interface)는 WSGI를 계승해, 비동기 지원 Python 웹 서버, 프레임워크 및 애플리케이션 사이의 표준 인터페이스를 제공하기 위해 설계 되었습니다.

  • WSGI가 동기식 Python 앱에 대한 표준을 제공한 반면, ASGI는 WSGI 하위 호환성 구현과 여러 서버 및 애플리케이션 프레임워크를 통해 비동기식 및 동기식 앱에 대한 표준을 제공합니다. 자세한 내용은 이곳에서

추가) 관련 기사

"파이썬 웹 개발의 미래" ASGI의 개념과 활용 방법

profile
with gratitude, optimism is sustainable

0개의 댓글