Django는 파이썬 웹 프레임워크로 유지보수가 편하고 웹사이트를 신속하게 개발하는 장점이 있습니다.
위 사진과 같이 Django 웹 어플리케이션은 아래와 같은 일련의 단계를 거쳐 수행합니다.
URLs
: URL mapper은 요청된 URL을 기준으로 hTTP요청을 적절한 VIEW로 보내주기 위해 사용합니다.
View
: View는 Http요청을 수신하고 응답을 반환하는 요청 처리 함수입니다. Model을 통해 요청을 만족하는 데이터베이스에 접근합니다.
요약하자면 사용자 profile을 볼 수 있고 HTML을 보여주는 Page를 만들고 싶으면 views.py에 코드를 입력합니다.
Models
: Models은 응용프로그램의 데이터 구조를 정의하고 데이터베이스의 기록을 관리하고 쿼리를 하는 방법을 제공합니다. 원하는 Database가 어떻게 생겼는지 설명해주어야 하는 곳입니다.
Templates
: Template는 파일의 구조나 레이아웃을 정의하고, 실제로 보여주는데 사용하는 플레이스 홀더를 가집니다.
Admin
: Admin 패널에서 users가 어떻게 보여질지를 변경하고 싶다면 admin.py에 코드를 붙입니다.
pip
은 파이썬으로 작성된 패키지 소프트웨어를 설치, 관리하는 시스템입니다. 파이썬3버전이 기본으로 지원 및 포함하고 있습니다.
pip
은 모든 것을 global
로 설치합니다. Project마다 요구하는 환경, 설정 등이 바뀔 수 있으므로 global로 설치하지 않고 프로젝트별 pipenv
(가상 버블)을 이용하는 것을 추천합니다.
만들어 둔 프로젝트 폴더에 pipenv를 설치합니다.
brew install pipenv
pipenv 환경으로 들어가기 위해선 pipenv shell을 입력하고 사용합니다.
그 후 pipenv 안에서 장고를 설치합니다.
pipenv install Django==x.x.x
django-admin
으로 django가 잘 설치되었는지 확인합니다. 다음 사진과 같이 입력할 수 있는 명령어가 나타나면 완료된 것입니다.
(.gitignore도 없다면 만들어줍니다.)
아래의 코드로 프로젝트를 시작합니다.
django-admin startproject app_name
위 명령어는 예를들어 'app_name'라는 생성된 폴더에 'app_name'이라는 프로젝트를 새로 만듭니다. 같은 이름의 폴더가 두개나 있으니 도큐먼트에서 만들거나, 'config'이라는 프로젝트명을 만들고 폴더와 manage.py를 꺼냅니다.
파이썬이 설치되지 않았다면 파이썬도 같이 설치해줍니다.
pipenv가 붙어있는 파이썬 버전을 사용합니다. ctrl + shift + p
를 누르면 pipenv가 붙어있는 버전을 선택할 수 있습니다.
flake8, black을 설치합니다.
flake8은 의심스럽거나, 에러를 발생하기 쉬운 코드에 flag를 달아 프로젝트에 코드 스타일을 통일해주는 역할을 합니다. black은 깐깐한 파이썬 코드 포맷터입니다.(prettier은 적용되지 않습니다.)
pipenv install flake8 --dev
pipenv install black --dev
flake8과 black의 조합은 막강합니다.
그 후 .vscode/setting.json에 다음과 같은 코드를 입력합니다.
위 폴더는 python: select linter를 클릭하면 자동으로 생성합니다.
{
"python.linting.flake8Enabled": true,
"python.linting.pylintEnabled": false,
"python.linting.enabled": true,
"python.formatting.provider": "black",
"python.linting.flake8Args": ["--max-line-length=88"], #최대 길이
"editor.defaultFormatter": "ms-python.python"
}
기본 타임은 USA로 지정되어있습니다. settings.py
로 가서 TIME_ZONE을 "Asia/Seoul"로 변경합니다.
python manage.py runserver
로 서버를 실행합니다. 실행을 하면 You have 18 unapplied migration(s)라며 경고를 띄움니다. 이를 해결하기 위해 python manage.py migrate
로 migrate를 해준 후 다시 서버를 실행합니다.
서버는 http://127.0.0.1:8000/입니다.
다음과 같은 화면이 나오면 서버가 성공적으로 실행되고 있습니다.
http://127.0.0.1:8000/admin
은 관리자 페이지 디폴드 주소입니다.
python manage.py createsuperuser
로 admin 페이지를 관리자 권한으로 들어갈 수 있습니다.
언제 어플리케이션을 만들고 만들지 말아야 하는지 구분할 수 있어야 합니다. 이는 한 문장으로 어플리케이션을 표현할 수 있는지로 구분할 수 있습니다.
한 어플에는 하나의 요소만 넣습니다. 예를 들어 revervations 폴더 안에는 '예약', '예약취소', '예약확인' 등과 같은 요소만 가지도록 합니다.
다음과 같은 명령어로 app을 만들 수 있으며 앱 이름은 복수형으로 짓습니다.
django-admin startapp 복수형_이름
Django는 React와는 달리 라이브러리가 아닌 프레임워크를 사용하기 때문에 지정된 이름을 함부로 변경하지 않습니다. 반면 React는 그저 빌드하기 위해 사용하기 때문에 변수명을 마음껏 변경 및 사용할 수 있습니다.