정렬하기

    order_by( )는 정렬하는 함수이다. create_date에 - 기호가 붙어 있으면 역방향, 없으면 순방향 정렬

from django.shortcuts import render, redirect
from .models import Product

def show_list(request):
	product_list = Product.objects.order_by('-create_date')
    return redirect('/')

 

 

 

 


템플릿 설정하기

    (settings.py - TEMPLATES에 추가하기)

#app에서 공동으로 사용할 templates 폴더 생성
'DIRS': [BASE_DIR / 'templates'],

 

 

 

 

 

템플릿 태그

 

    1. 분기

{% if 조건문 %}
{% elif 조건문 %}
{% else %}
{% endif %}

 

  2. 반복

{% for i in item %}
'''
여기서 forloop 사용 가능
forloop.counter	    루프내의 순서로 1부터 표시
forloop.counter0    루프내의 순서로 0부터 표시
forloop.first	    루프의 첫번째 순서인 경우 True
forloop.last	    루프의 마지막 순서인 경우 True
'''
{% endfor %}

 

    3. 객체 출력 

{% item.id %}

 

    *템플릿 문법 참조 : https://docs.djangoproject.com/en/4.0/topics/templates/

 

 

 

 

 


디테일 페이지

 

(urls.py)

  • 로컬 ip/5 : product_id에 5가 저장된 후 product_detail 함수가 실행된다.
  • views.py에서 question_id를 사용하지 않더라도 인자로 product_id를 받아줘야 한다.
from django.urls import path
from . import views

urlpatterns = [
    path('<int:product_id>/', views.product_detail, name='product_detail'),
]

 

(views.py)

def product_detail(request, id):
	#(DB)id = id(POST에서 불러온 값)
	product = Product.objects.get(id=id)
    
	# user의 signup.html을 화면에 보여주는 함수
	# templates / product / mall.html
	return render(request, 'product/mall.html', {'product':product})

 

(mall.html)

<h1>{{ product.description }}</h1>

 

 

 

 

 

 

오류 페이지

    DoesNotExist(500) : 로컬 ip / product_id 값이 없을 때 발생하는 오류를 404 페이지로 리턴하고자 한다.

from django.shortcuts import render, get_object_or_404
from .models import Product


def product_detail(request, id):
    # pk = Primary Key(기본키)
    product = get_object_or_404(Product, pk=product_id)
    return render(request, 'product/mall.html', {'product':product})

 

 

 

 

 


Primary Key 와 Unique Key 차이

    Primary Key : 주민등록번호, 전화번호 같은 데이터를 식별하고자 할 때 사용하는 키. 테이블당 하나의 pk만 지정할 수 있으며, NULL 값을 허용하지 않는다.

    Unique Key : 아이디 중복 검사 등 유일성을 부여할 때 사용하는 키. NULL 값을 허용한다.

 

 

*제네릭뷰(Generic View) : 비슷한 패턴의 내용을 간략하게 만든 것.

'Python > Django' 카테고리의 다른 글

07. Django from 태그  (0) 2023.04.16
06. Django URL 별칭  (0) 2023.04.10
04.5 Django 관리자  (0) 2023.04.09
04.Django 모델  (0) 2023.04.09
03. Django URL  (0) 2023.04.07

+ Recent posts