1. "settings.py" 파일 수정

■ 기존

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

 

■ 변경

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',		# ENGINE
        'NAME' : '<DATABASE_NAME>',			# DATABASE NAME
        'USER' : '<DATABASE_ID>',			# DATABASE ID
        'PASSWORD' : '<DATABASE_PASSWORD>',		# DATABASE PASSWORD
        'HOST' : '<DB_SERVER_IP>',			# SERVER IP
        'PORT' : '<DB_SERVER_SERVICE_PORT_NUMBER>',	# SERVICE PORT
    }
}

□ 다른 DB로 연동 시 'ENGINE' 항목은 다음과 같다.

▶ postgresql : django.db.backends.postgresql

▶ sqllite3 : django.db.backends.sqlite3

▶ oracle : django.db.backends.oracle

 

출처 : https://docs.djangoproject.com/en/4.1/ref/settings/#databases

 

Django

The web framework for perfectionists with deadlines.

docs.djangoproject.com

'Django' 카테고리의 다른 글

Django / 페이징(paging)  (0) 2023.02.15

■ 사용 Class : Paginator

 

■ views.py

def index(reuqest):
	page = request.GET.get('page')	# GET 으로 받은 페이지 번호
    db_list = <ModelsClass>.objects.orderby('-<column>')	# 페이징 처리할 DB Data 조회
    paginator = Paginator(db_list, <int:per_page>)	# 한 페이지 당 조회된 <per_page> 만큼 DB Data 조회
    page_obj = paginator.get_page(page)	# GET 으로 받은 페이지 번호 기준으로 페이징
    context = {'page_list': page_obj}	# template 에 전달할 값
    return render(request, '<template>', context}

▶ paginator.get-page(<NUMBER>) : 유효 값이 아니면 페이징 최대값 반환

▶ paginator.page(<NUMBER>) : 유효 값이 아니면 "EmptyPage" 반환

 

■ HTML

<ul>
	<!-- 이전 페이지 -->
    {% if page_list.has_previous %}
    	<li>
        	<a href="?page={{ page_list.previous_page_number }}">이전</a>
        </li>
    {% else %}
    	<li>
        	<a href="#">이전</a>
        </li>
    {% endif %}
    <!-- 페이지 리스트 -->
    {% for page_number in page_list %}
    	{% if page_number == page_list.number %}
   	     <li>
        		<b>{{ page_number }}</b>
        	</li>
        {% else %}
        	<li>
        		<a href="?page={{ page_number }}">{{ page_number }}</a>
        	</li>
        {% endif %}
    {% endfor %}
    <!-- 다음 페이지 -->
    {% if page_list.has_next %}
    	<li>
        	<a href="?page={{ page_list.next_page_number }}">다음</a>
        </li>
    {% else %}
    	<li>
        	<a href="#">다음</a>
        </li>
    {% endif %}
</ul>

 

▶ "paginator.count" : 전체 게시물 개수

▶ "paginator.per_page" : 페이지당 보여줄 게시물 개수

▶ "paginator.page_range" : 페이지 범위

▶ "number" : 현재 페이지

▶ "previous_page_number" : 이전 페이지 번호

 - True : int

 - False : EmptyPage

▶ "next_page_number" : 다음 페이지 번호

 - True : int

 - False : EmptyPage

▶ "has_previous" : 이전 페이지 유무

 - True : True

 - False : False

▶ "has_next" : 다음 페이지 유무

 - True : True

 - False : False

▶ "start_index" : 현재 페이지의 시작 인덱스 (1부터 시작)

▶ "end_index" : 현재 페이지의 끝 인덱스 (1부터 시작)

'Django' 카테고리의 다른 글

Django / MySQL(Maria) DB 연동  (0) 2023.03.01

+ Recent posts