Server/Django project 1 - shopping mall 14

13. Django order app 주문정보 조회하기

이제 주문정보 조회하는 것을 list로 만들어 보겠다. 즉, ListView를 사용할 것이다. 그 말은 페이지를 만든다는 의미이고 그로 인해 평소에 하던 순서를 반복하겠다. 목차 1. templates ( order.html ) 2. views.py ( class OrderList ) 3. urls.py ( "order/" ) ★ 4. 문제점 발생!! --> 해결 : QuerySet ★ 5. 결과확인 1. templates ( order.html ) 모델을 참고하여 템플릿에서 표시할 정보들을 수정할 것이다. head 에는 상품명, 수량, 주문날짜를 표시하고 body에는 DB에 저장된 순서(주문순서), 상품명, 수량, 등록날짜만 표시하도록 하자. 2. views.py ( class OrderList ) 이..

12. Django order app 상품 주문하기 (2)

지난 수업에 이어 상품주문하기 2편이다!!! 이번엔 좀 어렵다잉!! 가즈아!! 목차 : 1. request.session 2. db.transaction 3. 결과 확인 1. request.session (1) 이제 해당 주문으로 인해 수량이 감소하는 것을 DB에 저장하도록 하는 코드를 작성할 것이다 . # 이제 사용자 정보를 들고와야한다. # session을 가져오려면 form 안에서 request.session에 접근할 수 있어야 하는데 # 현재는 접근할 수 없다. session에 접근할 수 있도록 form을 변경할 것이다. 여기서 DB에 데이터를 저장하는 save()의 경우 어느 파일에서 하든 상관없지만, FormView의 경우 값을 form으로 입력받으면, 그 값을 DB에 넣는 작업또한, 해당 f..

11. Django order app 상품 주문하기 (1)

이번 파트는 많은 내용을 담고 있기에 2편으로 나누어 진행하였다. 지금까지 만든 shopuser(유저), product(물건) app을 구현하였다. 이제 해당 유저가 이 쇼핑몰에서 물건을 사게 되는 경우 이루어지는 기능을 구현한다. 이번엔 기능 별로 목차를 나눌 것이다. 파일을 여기저기 왔다갔다 할꺼니깐 잘따라와!! 가즈아!!!!!!!!!!!!!!!!!!!!!!!!! 목차 : 1. forms.py 2. views.py 3. FormView( order/views.py ) , urls.py 4. template 수정 ( product_detail.html ) 5. 문제점 1. forms.py 주문하기의 경우 주문하는 페이지를 별도로 만들지 말고, 상품 상세페이지(product_detail.html)에서 수..

10. Django product app 상품 상세보기

상품 상세보기 또한 기본적으로 제공하는 View 중에서 DetailView를 사용해서 구현해 볼 것이다!! ( 지금까지 배운것 2가지 : FormView, ListView ) from django.views.generic import ListView, DetailView from django.views.generic.edit import FormView 똑같이 template_name 지정하고, 적절한 형식만 맞추면 된다. 가보자잉!!!! 1. views.py 2. product_detail.html 3. urls.py 4. primary key 5. bootstrap 6. 링크 연결 1. views.py 여기서 달라지는 것은 queryset 이라는 변수에 특정 값을 넣어줘야 한다.!!!!!!!!!!!!..

9. Django product app 상품등록 만들기

이제 상품을 등록하는 기능을 만들어보자 이전 상품목록을 보여주는 기능은 DB에 저장된 데이터를 List를 보여주는 것이기에 등록할 상품을 구조과 형식에 맞게 DB에 저장하도록 페이지와 코드를 작성해보자 등록은 회원가입과 유사하기에 register_product.html 과 forms.py를 생성한다. 다음과 같이 큰 틀로 나눌 수 있다. 1. forms.py 2. register_product.html 3. views.py, urls.py 4. 결과확인 5. summernote 과 깨알지식들 및 해당 결과 확인 1. forms.py forms.py 의 경우 지금까지 같이 해왔다면 받고 싶은 데이터를 form으로 받는 것이기에 product에 해당하는 데이터는 models.py에 정의되어 있다. 그 구조로..

8. Django product app 상품목록(list) 만들기

이제 상품에 대한 app을 만져보자 1. model 이전에 완성한 product의 model을 보면 다음과 같다. 2. view 우선 product의 경우 list를 사용하기 ListView를 이용한다. (user에서는 FormView를 사용햇다.) 여기서 이해를 돕기위해 복습하자면, 우리는 view를 만들때 하나씩 함수로 구현이 가능하다. 하지만 django에서는 기본적으로 내부적으로 간단하게 이용 가능한 몇가지의 View들이 존재하고 우리는 views.py에서 해당 class를 사용할 특정View를 상속받은 뒤, 프레임워크의 특징처럼 구조에 맞게 몇가지 설정만 하면 된다. ListView의 경우 어떤 모델의 리스트를 보여줄 것인지 모델을 지정해주어야 한다. (모델만 지정해주면 끝이다.) 3. url ..

7. Django 로그인 view 구성

로그인의 경우 회원가입과 비슷한 구조를 갖는다. 그래서 설명이 빈약할 수 있다ㅎㅎ 다른점이 있다면 ★session★ 이다. 밑에서 자세히 설명하겠지만 맛보기로 설명하자면, 로그인이 되었을 때와 로그인이 되지 않은 상태에서는 서로 다른 권한을 갖고 있고 현재 페이지도 그 권한에 따라 다를 수 있는 것이다. 그렇다면 로그인이 되었다면 뭔가를 더 가졌다는 말이고, 이를 어떻게 설정하는지도 보자!! 1. templates ( 'login.html' ) 해당 templates를 register.html에서 로그인으로 몇 가지 text만 수정하면 된다. 기본적으로 form형태를 유지하도록 완성되어있기에 궁금한점은 댓글 적어 주세요~ 2. forms (LoginForm) 비밀번호 확인에 해당하는 re_password..

6. Django 회원가입 view 구성

bootstrap을 이용하여 기본적인 UI를 구현하여 django의 흐름을 더욱 이해하도록 회원가입을 만들려고 한다. getbootstrap.com/docs/4.3/getting-started/introduction Introduction Get started with Bootstrap, the world’s most popular framework for building responsive, mobile-first sites, with BootstrapCDN and a template starter page. getbootstrap.com 해당 bootstrap에서 css, js에 해당하는 부분을 복사하여 head부분에 붙여넣기 해준다. 이렇게 되면 bootstrap을 사용할 수 있는 구조는 완성이 되..

5. Django view 구성 (Class-based generic views)

views.py의 경우 특정 url에 접근할 때 특정 함수로 호출되도록 하는 경우를 넘어서 Class 기반으로 view를 구성해보자!!!! Class를 이용하게 되면 inheritance(상속)을 이용할 수 있게 되고, 부모클래스의 함수들을 활용도가 매우 높다. 우리가 직접 클래스를 만드는 것도 가능하지만!! 우선 django 안에 만들어진 몇 가지의 view를 살펴보자 개발자면 갬성있게 공식홈페이지 들어 가줘야지!!!!! docs.djangoproject.com/en/3.1/ Django documentation | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Downlo..

4. Django admin 구성 (관리자 페이지)

admin 구성 (관리자 페이지) Django admin 이 무엇인지 보고 우리가 만든 모델을 적용해서 사용해보자. 각 app에 있는 admin.py를 수정해서 등록을 해줘야한다. 기본적으로 settings.py에 admin은 설정이 되어있다. 프로젝트 생성 시 자동으로 생성되는 urls.py에도 기본적으로 admin은 들어가 있다. 의미를 설명하자면 admin안에는 여러가지 url들이 정의가 되어있고, 그것들을 프로젝트 안에서 admin 하위 ( admin/{여기} ) 로 지정하는 것이다. (관리자 페이지에서도 여러가지 url들을 사용하고, 또 그것들이 admin안에 정의가 되어있다.) 그렇기에 우리가 주소를 입력할 때, admin 하위에 들어가는 주소들은 admin.site.urls 안에 정의된 ur..

3. Django model 구성 (데이터의 정의)

model 구성 (데이터의 정의) Users를 관리하기 위해 필요한 데이터들을 DB(데이터베이스)에 넣겠다는 의미이다. verbose_name : 지칭하는 닉네임이라고 보면 된다. CharField : 최대길이를 지정해 주어야 한다. TextField, EmailField : CharField와 다르게 max_length(최대길이)를 지정할 필요 없다. DateTimeField : auto_now_add를 통해 현재 시간으로 자동 추가가 가능하다 def __str__(self) : 해당 클래스의 객체는 self.email로 반환됨을 의미한다. class Meta : 해당 데이터들이 묶여있는 table과 admin 페이지에 있는 닉네임을 지정한 것이다. _plural : 복수형을 의미하며, 사실 데이터가 ..

2. Django 설치 및 환경 구축

yeongwoo-cho.tistory.com/5 1. 나 이제 윈도우에서 우분투로 개발할래(WSL과 VScode) 웹 애플리케이션을 빌드하는 경우 Python을 WSL에 설치하는 것이 좋다. Python 웹 개발에 대한 많은 자습서와 지침은 Linux 사용자를 위해 작성되었으며, Linux 기반 패키징 및 설치 도구를 사용한다. 대 yeongwoo-cho.tistory.com 나는 위에 방법으로 OS Windows에서 VScode의 Terminal을 Ubuntu로 사용하고 가상 환경까지 구축하였다. 우선 장고를 설치해야지 $ pip3 install django django를 설치하게 되면 django-admin 이라는 명령어를 실행할 수 있게 되고, 이 명령어를 통해서 project와 app도 만들게 된..