Django 1

김기현·2022년 2월 3일
1

django

목록 보기
1/8
post-thumbnail

Django Start

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에 코드를 붙입니다.

Basic Setting

pip(패키지 관리자)

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도 없다면 만들어줍니다.)

StartProjects

아래의 코드로 프로젝트를 시작합니다.

django-admin startproject app_name

위 명령어는 예를들어 'app_name'라는 생성된 폴더에 'app_name'이라는 프로젝트를 새로 만듭니다. 같은 이름의 폴더가 두개나 있으니 도큐먼트에서 만들거나, 'config'이라는 프로젝트명을 만들고 폴더와 manage.py를 꺼냅니다.

파이썬이 설치되지 않았다면 파이썬도 같이 설치해줍니다.

Using Python Interpreter

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"

}

Start Server

기본 타임은 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 페이지를 관리자 권한으로 들어갈 수 있습니다.

Divide and Conquer

언제 어플리케이션을 만들고 만들지 말아야 하는지 구분할 수 있어야 합니다. 이는 한 문장으로 어플리케이션을 표현할 수 있는지로 구분할 수 있습니다.

한 어플에는 하나의 요소만 넣습니다. 예를 들어 revervations 폴더 안에는 '예약', '예약취소', '예약확인' 등과 같은 요소만 가지도록 합니다.

Create Apps

다음과 같은 명령어로 app을 만들 수 있으며 앱 이름은 복수형으로 짓습니다.
django-admin startapp 복수형_이름

Django는 React와는 달리 라이브러리가 아닌 프레임워크를 사용하기 때문에 지정된 이름을 함부로 변경하지 않습니다. 반면 React는 그저 빌드하기 위해 사용하기 때문에 변수명을 마음껏 변경 및 사용할 수 있습니다.

profile
피자, 코드, 커피를 사랑하는 피코커

0개의 댓글