[패스트캠퍼스python] 장고프로젝만들기 전체 순서/흐름도(ft.쇼핑몰)
차근차근 순서대로 Django와 python으로 쇼핑몰을 만들어보자.
1. Django 가상환경설정
- 가상환경 virtualenv 설치하기 : pip3 install virtualenv
- 가상환경 폴더만들기 : virtualenv 새로운파일명(보통은 env)
- 새로운 프로젝트를 시작할때마다 새로운 가상환경을 설정해주는 것이 좋다.
- 가상환경폴더는 보통 env라고 정하고 프로젝트 디렉토리 내부에 이를 만드는 것이 일반적인 관습이다.
- 만약 git과 같은 버전 컨트롤 시스템을 사용한다면, env 디렉토리를 커밋에 포함시키면 안된다. 반드시
.gitignore
파일에 env 디렉토리를 추가해야한다.
- 가상환경 들어가기 :
- cd 가상환경을 설치한 파일경로
- cd Scripts
- activate
- 위에서 만든 가상환경 폴더 안에서 Django설치 : pip3 install django
- 가상환경 안에 어떤 프로그램이 설치되어있는지 궁금할때는
pip list
을 입력하면 된다.
- 가상환경 안에 어떤 프로그램이 설치되어있는지 궁금할때는
2. 새로운 프로젝트와 앱생성
- 새로운 프로젝트 생성하기 : django-admin startproject 새로운프로젝트명
- app생성하기 : django-admin startapp 새로운앱명
- 쇼핑몰이므로 user, product, order, delivery등의 app을 생성하면 된다.
- 위에서 만든 모든 app에 각각 templates 폴더 생성
- 만든 app을 app(프로젝트명과 동일한 이름)하위의
settings.py
에서Installed_app = []
에 연결. - 만든 각각의 app하위의
models.py
에 class와 그 안에 class Meta를 생성.- 아래는 쇼핑몰 user 예시코드이다.
- 쇼핑몰이니까 user앱뿐만 아니라 product, order, delivery등의 각 app 하위에도 class와 class Meta를 생성한다.
1 | class User(models.Model): |
3. Database 설정
- DB에 변경이 필요한 사항 추출하기 : python3 manage.py makemigrations
- 예를 들어 클래스를 만들었으면, 클래스에서 모델을 불러와 테이블 생성한다.
- DB에 변경사항 반영하기 : python3 manage.py migrate
- 예를 들어 클래스를 만들었으면, 위에서 불러온 테이블(클래스)에 칼럼 및 속성 추가 또는 반영한다.
- 9번과 10번을 통해서 DB에 테이블 자동 생성이된다.
sqlite3 db.sqlite3
명령어등으로 sqlite3를 만질 필요가 없이 장고가 알아서 다 해준다! 이 맛에 장고를 이용한다고 한다.
- 첫 user생성하기 : python3 manage.py createsuperuser
- 반영사항 체크하기 : python3 manage.py runserver
4. 부트스트랩 설정
- 각 app의 templates폴더안에 html파일을 만든다.
- user app의 templates폴더안에
base.html
,index.html
- product app의 templates폴더안에
- order app의 templates폴더안에
- user app의 templates폴더안에
- templates폴더안에 html파일에 부트스트랩 css와 js를 복붙한다.
- 부트스트랩 사이트
base.html
에 부트스트랩 css코드와 js코드를 head태그안에 복붙한다.index.html
은base.html
을 상속받아서 활용한다.
아래는 base.html
코드이다.
1 | <!DOCTYPE html> |
아래는 index.html
코드이다. “base.html”를 상속받는다.
- 부트스트랩스타일적용 : 프로젝트디렉토리 하위에
static
폴더생성 (app폴더들과 동급)-> 원하는 디자인 다운로드 후 폴더안에 넣기 - html파일을 view.py에 연결하기.
- 만든 모든 html파일은
view.py
에 연결해야한다. - 예시로 위에서 만든 index.html을
view.py
에 연결하는 방법은 아래와 같다.
- 만든 모든 html파일은
- usr.py에 연결하기.