본문 바로가기

Web + APP/Django

Django Setting 하기 !

반응형
SMALL

Django Setting

Python

Python의 경우 3.8.1 버전을 사용했으며, Window 환경이기에 Python 공식홈페이지에서 설치를 진행했습니다.

https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

PATH 추가를 꼭 해야 나중에 고생을 안합니다.

Pipenv를 이용한 가상환경 만들기

저희는 프로젝트를 진행하기 앞서 가상환경을 만들어서 Django 세팅을 할 겁니다 !

만약, 본인의 컴퓨터에서 하나의 프로젝트만 진행한다고 했을 땐, 그냥 전역(global)하게 세팅을 해도 되겠지만, 저희는 컴퓨터가 한 대 뿐이니.. ㅠㅠ 안에서 가상환경을 만들어서 해봅시다.

# pipenv 설치 pip는 python을 설치하면 따라오는 패키지 관리 모듈입니다.
# --user의 경우엔 사용자 경로에 설치하는 것입니다.
# --root는 root directory에 설치
pip install --user pipenv

# pipenv 버블 생성
pipenv --three # python 3로 생성
python -m pipenv --three # 위에거 안되면 이걸로 python -m가 python library 실행시켜주는거임

# pipenv 가상환경 들어가기
pipenv shell 
python -m pipenv shell # 위에거 안되면 이거

# pipenv 가상환경 나오기
exit

# 가상환경에서 Django 설치하기
pipenv Django==2.2.5
python -m pipenv Django==2.2.5 # 위에거 안되면 이거

여기까지하면 pipfile에서의 Packages에 django가 추가된 것을 볼 수 있습니다 !

또한, Django가 설치 되어 있는지 안되어 있는지로 환경에 따라 잘 설치가 됐는지 확인할 수 있습니다.

import django
django.get_version()

위 명령어를 실행했는데, pipenv에선 버전이 떠야하고, 전역에서는 뜨면 안됩니다.

Django Project 생성

django-admin startproject config

그러면 config 폴더 안에 configmanage.py가 생성되는데 이를 밖으로 빼면 좋습니다. 빼기 전에 최상위에 있는 config 폴더를 다른 이름으로 정하고, Aconfig 그 후 위 두 가지 파일을 최상위로 빼내도록 합시다.

Linter는 뭘까요? Linter는 에러가 생길 부분을 미리 감지하려고 하는 친구입니다. 컴파일 에러를 잡아내는 것, Python의 경우 컴파일 에러를 미리 안하잖아요? Linter가 그 역할을 해줍니다. 코드 Style Guide도 해줍니다.

{
    "python.pythonPath": "C:\\Users\\HAN\\.virtualenvs\\airbnb-clone-azKDMdi5\\Scripts\\python.exe",
    "python.linting.flake8Enabled": true,
    "python.linting.pylintEnabled": false,
    "python.linting.enabled": true
}

vscode 폴더에 setting.json라는 파일이 생겼는데, 이는 프로젝트의 설정을 의미합니다. flake8이 Linting 해주는 프로그램인데, 아마 설치하라고 알림이 뜰겁니다. Install 버튼을 누르면, 이를 자동으로 설치해주고, 심지어 가상환경 안에서 Install 버튼을 누르면 vscode에서 알아서 가상환경 안에서 만들어줍니다. (python extension을 미리 설치를 해놨기 때문에 가능한 일입니다)

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
pylint = "*"
flake8 = "*"

[packages]
django = "==2.2.5"

[requires]
python_version = "3.8"

Pipfile에 들어가보면 dev-pakages와 packages가 생긴걸 볼 수 있는데, packages의 경우 웹 애플리케이션이 동작할 때 필요한 패키지를 의미하고, dev-package는 개발자가 개발할 때만 필요한 패키지입니다.

Flake8 + black, python packages 설정

또한, formatting을 설정해놓는것도 필요한데, 얘는 알아서 코드 수정해가며 예쁘게 만들어주는 package입니다.

pipenv install black --dev --pre 로 설치를 진행하고 "python.formatting.provider": "black"을 settings.json에 추가하도록 합시다.

flake8 + black은 최고의 조합 !

퓨전 합 !

오른쪽 하단 톱니바퀴를 클릭하고 설정(settings)에서 format on save를 검색하여, 체크를 합시다. 이러면 저장할 때마다 formatting을 해줍니다. 실제로 Django 설치 후 기본으로 만들어진 python 파일들 들어가서 저장하면 자기 알아서 작은 따옴표가 큰 따옴표로 변하고, 들여쓰기도 다 알아서 맞춰줍니다. 짱;;

flake8과 black을 테스트해보고 싶으면, config 폴더에 들어가서 settings.py에 에러가 뜬 것을 확인하자. 4개의 에러가 떴을건데, line too long 에러가 떴을 것입니다.

Python에서는 라인의 길이가 79자가 넘으면 안됐어요. 옛날엔 컴퓨터 스크린이 작아서 이런게 생김.

옛날엔 이런걸 썼다.

그래서 우리는 세팅을 바꿀겁니다. 왜냐면 요즘 모니터는 길잖아요.

Linter를 수정하기 위해선 settings.json을 켜고 "python.linting.flake8Args":["--max-line-length=88"]"을 추가합시다. 그러면 에러가 4개에서 1개로 줄어든 것을 확인할 수 있습니다. 1개는 그냥 놔두도록 하죠 ㅎㅎ;; 원래 길면 안 좋아요. Python은 항상 간결하게


여기까지하면 Django Setting을 완료했다 !!

 

이상 Django Setting 하기 ! 였습니다. ^_^

반응형
LIST

'Web + APP > Django' 카테고리의 다른 글

Get, Post 요청을 모두 알아서 처리하는 FormView !  (4) 2020.05.30
Class Based View  (0) 2020.05.10
Managers와 QuerySets의 이해  (0) 2020.05.02
추상 모델  (0) 2020.04.29
커스텀 유저 모델  (0) 2020.04.29