가상환경 생성 및 활성화
virtualenv 설치
프로젝트 폴더 하나 생성 후
$ pip install virtualenv
가상환경 만들기
// python 3.7 이상
$ python -m venv myenv
// python 3.7 이하
$ virtualenv myenv
가상 환경 활성화
$ source myenv/Scripts/activate
하면 하단에 (myenv)가 에코되면서 가상 환경 활성화가 완료된다.
VSCode 인터프리터 선택
(반드시 가상 환경이 활성화된 상태에서 진행)
ctrl+shift+p → python interpreter → ‘myenv’: venv
후에 터미널 창 (git bash) 열면 자동으로 가상 환경이 활성화된다.
django 설치
$ pip install django==3.2.12
반드시 버전을 명시해줘야 한다. 아니면 자동으로 버전 4.0가 설치되는데 얘는 LTS가 아니라 사용 안함.
프로젝트 생성
$ django-admin startproject <프로젝트이름> .
해당 프로젝트 폴더와 manage.py 파일이 생성됨
❓ 프로젝트 이름 뒤에 .를 붙이는 이유?
안붙이면 프로젝트 폴더 계층이 하나 더 생기게 됨
- 붙일 경우
root
ㄴ 프로젝트폴더
ㄴ myenv
ㄴ manage.py
- 안붙일 경우
root
ㄴ 프로젝트폴더
ㄴ 프로젝트폴더
ㄴ manage.py
ㄴmyenv
❌ 프로젝트 이름에 -(하이픈), Django, text 등 파이썬이나 장고에서 사용되는 예약어를 사용하면 안됨
프로젝트 구조
- init.py
- 파일 디렉토리가 하나의 패키지로써 실행되도록 관리
- asgi.py
- aynchronous server gateway interface.
- django app이 비동기식 웹 서버와 연결, 소통하는 것을 도움. 배포할 때 사용.
- setting.py
- 어플리케이션의 모든 설정을 포함
- urls.py
- 사이트의 url과 views의 연결을 지정. 클라이언트의 요청이 들어왔을 때 제일 먼저 연결되는 파일.
- wsgi.py
- web server gateway interface.
- asgi처럼 배포시 사용
- manage.py
- django 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인 유틸리티 ex) python manage.py runserver
django 서버 시작하기(활성화)
$ python manage.py runserver
Application 생성
Application 이란?
application은 실제 요청을 처리하고 페이지를 보여주는 역할을 한다. 일반적으로 앱은 하나의 역할 및 기능 단위로 작성된다.
하나의 project에는 여러개의 application이 포함될 수 있으며 앱 이름은 복수형으로 하는 것을 권장한다.
project
ㄴ 게시판 app
ㄴ 세션 app
$ python manage.py startapp <앱이름>
Application 구조
장고의 MTV 구조
- init.py
- admin.py
- 관리자용 페이지를 설정하는 곳
- apps.py
- 앱의 정보가 작성된 곳
- models.py
- 앱에서 사용하는 Model을 정의하는 곳
- test.py
- 테스트 코드 작성하는 곳
- views.py
- view 함수들이 정의되는 곳
Application 등록
settings.py의 INSTALLED_APPS 배열에 추가
반드시 settings.py 에 생성하고 등록해야 한다. 등록하고 나중에 배열에 추가해도 앱이 생성되지 않는다.
보통
- local apps (개발자가 직접 생성하는 앱)
- third party apps (pip로 설치하는 앱)
- django apps (장고에서 기본적으로 생성되는 앱)
순서로 적어줘야 한다.