본문 바로가기
개발/파이썬

전자상거래 웹사이트 만들기 1

by Engineer-Lee 2022. 5. 13.
반응형

e-commerce라는 폴더를 하나 생성하고

터미널에서 'django-admin startproject ecommerce' 명령어를 입력해서 새 장고 프로젝트를 만들자

'python -m venv venv'로 가상환경을 만들고 'venv\Scripts\activate'를 입력해 가상환경을 활성화 한다.

가상환경에서 장고를 설치하기 위해 'pip install django'를 입력한다.

또한 'store'라는 새 앱을 만들기 위해 'python manage.py startapp store'를 입력한다.

 

 

 

새 앱을 생성하면 'setting.py'에서 INSTALLED_APPS에서 새로 생성된 앱을 추가해야한다.

그후 한국 시간대를 기준으로 맞추기 위해 TIME_ZONE을 'Asia/Seoul'로 수정한다.

 

'python manage.py migrate'를 입력해서 우리가 생성한 앱과 여러 장고의 기본 앱들이 필요한 데이터 구조를 생성하자

 

 

 

e-commerce의 URL 구조는 아래와 같다.

''(root) 전자상거래 홈페이지
/item 전체 물품 조회(Read)
/item/<item_id> 개별 물품 조회(Read)
/item/new 새 물품 업로드(Create)
/item/<item_id>/edit 물품정보 수정(Update)
/item/<item_id>/delete 업로드한 물품 삭제(Delete)

 

 

 

그럼 url를 설정하기 위해 ecommerce의 urls.py를 수정해보자

로컬호스트뒤에 빈 url일때 store의 urls.py에서 처리하게 만들기위해 include('store.urls')를 적었다.

그런데 현재 store에 urls.py 파일이 없으므로 새로 만들어야 한다.

 

 

 

이제 모델을 만들자

각 물품들은 물품의 이름, 설명, 판매자 아이디, 판매자 연락처, 글 작성일, 글 수정일, 판매된 날짜로 이루어진다.

CharField는 길이에 대한 제한이 있고 TextField는 길이 제한이 없다.

verbose_name은 읽기 쉬운 별칭을 붙여주는 것이다.

auto_now는 마지막으로 저장될 때의 시간을 자동적으로 해당 필드에 저장한다. 따라서 데이터의 마지막 수정일에 사용하기 좋다.

auto_now_add는 처음 생성될 때의 시간을 자동적으로 해당 필드에 저장한다. 따라서 데이터의 생성일에 사용하기 좋다.

 

판매 날짜인 dt_sold는 판매되기 전까지는 비어있어야 하므로
날짜 필드나 숫자 필드에 빈 값을 허용하기 위한 
null = True 와 blank = True를 모두 사용한다.

 

이제

'python manage.py makemigrations'로 변경사항에 대한 마이그레이션을 생성하고

'python manage.py migrate'로 마이그레이션을 반영하자

 

그리고 'python manage.py createsuperuser'로 관리자 계정을 만들고 admin.py에 우리가 만든 Item 모델을 등록해야한다.

 

이렇게 설정을 마치면 이제 우리는 관리자 페이지에서 데이터를 관리할 수 있다.

반응형