Django 를 다운로드 받을 때
pip install Django
를 지양해야 하는 이유
기본적으로 pip 를 통해 install 하는것은 전역으로 설치됨
해당 프로젝트에만 설치하는 걸 지향해야함 왜냐하면 global 환경에 다운로드 시 추후 버전 업데이트 등의 이슈로 에러가 발생할 확률이 큼
그러고 vscode 에서 터미널 켜서
4. pipenv shell 입력
예를들어 (여기서는 airbnb-clone 폴더) 안으로 들어가는 명령어이다
이제 이 가상환경 안에 django 등 여러 패키지를 깔면 된다!
요런식으로 가상환경에서 django-admin 까지 해주면 다음과 같이 뜬다
이후에 django-admin startproject mysite 로 django를 시작할 수도 있지만 확장성이 좋지 않다
따라서 프로젝트 진행중인 가상환경에서 django-admin startproject config 명령어를 입력해주자
좌측 하단의 python2.x 로 버전이 셋팅되어있다면 눌러서 pipenv가 붙은 파이썬 버전으로 설정해주자
Compile 언어는 compiler가 프로그래밍을 구동전에 에러를 잡아준다
하지만 python 은 compile 언어가 아니다 ㅠㅠ 그래서 구동 후 에러가 있으면 프로그램이 무너지는데 이를 방지하기 위해 Linter가 필요하다
Linter 는 코딩을 하면서 에러가 발생할 부분과 코딩컨벤션에 어긋나는 것들을 미리 알려주는 기능이다.
Linter 는 cmd+shift+p 로 팔렛트를 켜서 select linter를 검색 후 셋팅해주면 된다.
나는 flask8을 적용하였고
적용 후 settings.json 파일에 flake8Enabled :True 로 적용된것을 볼 수 있다
적용하고 나면 우측하단에 pep8~~ formatter 쓸래 ? 하는 알림창이 뜬다
linter가 에러나 코딩컨벤션에 어긋나는 부분을 알려주는 기능이라면 formatter는 코드를 깔끔하게 고쳐주는 역할을 한다. formatter알림에서 use black을 클릭 or 터미널에서 pipenv install black --dev --pre 설정을 해주면 된다.
여기까지 했다면
터미널에서 다음과 같이 python manage.py runserver 명령어를 입력해주자
아래와 같이 127.0.0.1:8000 서버가 생긴것을 볼 수 있다!
django admin 페이지 로그인
admin 관리자 페이지에서는 users 관련된 것들을 설정할 수 있다 staff 인지 일반 user 인지
권한 설정 및 언제 가입했는지 등의 내용도 확인 가능하다
django의 장점 중 하나는 migration system 이 있다는 것
database 에서는 different shape of data 로 만들기 위해 migrate 가 필요하다
application 생성할때는 django-admin startapp users 이런식으로 생성해주자
이런식으로 django 폴더와 파일들을 만들어 줬다 근데 여기서 admin.py, tests.py 같이 자동으로 생성된 파일의 파일명은 건들면 안된다. library가 아니라 framework 이기 때문에
여기서 models.py 는 db 와 communication 하는 파일이다.
내가 지금 만들 user app 은 django 에서 제공하는 user model 에 적합하지 않다
아래의 Django official 페이지에서 보면 Django 에서 제공해주는 user model 이 적합하지 않을경우 AUTH_USER_MODEL 에 값을 걸어서 사용하길 원하는 model을 설정하고, INSTALLED_APPS 에 반드시 넣어줘야한다고 나와있다
이렇게 해당 users> models.py 에서는 AbstractUser class 를 상속받도록 해주고, settings.py 는 다음과 같이 수정해줬다
후에 makemigrations 해주기
이렇게 bio 라는 필드를 만들어주면
admin 페이지 하단에 bio 가 추가된것을 볼 수 있다