본문 바로가기
DoItDJango

template 사용 - class기반 뷰어 생성

by 자동매매 2023. 4. 13.

1. App 아래에 templates 폴더 생성  

    - 아래에 home.html 파일 생성

<!-- templates/home.html -->

<h1>Homepage</h1>

 

2. project setting.py의 templates 설정

'DIRS': [os.path.join(BASE_DIR, 'templates')],                    # templates 경로 추가

 

3. views.py 수정

from django.views.generic import TemplateView


class HomePageView(TemplateView):
    template_name = 'home.html'

 

4. urls.py 수정  - Class-Based View 사용

# project_home/urls.py

from django.urls import path, include  # new

urlpatterns = [
    path('', include('pages.urls')), # new
]

 

# pages/urls.py

from .views import HomePageView


urlpatterns = [
    path('', HomePageView.as_view(), name='home'),
]

class 기반 뷰는 view 이름뒤에 항상 .as_view() 를 항상 더한다.

 

5. 동일 방식으로 about.html  구동되도록 해보자!!!

 

Extending Templates 

- base.html생성 후 상속하는 추가 템플릿 만든다.

 

1. base temple file 생성 - templates / base.html

 2. 이곳에 template tag 구성 

<!-- templates/base.html -->

<header>
    <!-- url tag -->
    <a href="{% url 'home' %}">Home</a> | <a href="{% url 'about' %}">About</a> 
</header>

<!-- block tag - 블록은 상속을 통해 자식 템플릿으로 덮어쓸 수 있습니다.-->
{% block content %}

{% endblock content %}

 

<!-- templates/home.html -->

{% extends 'base.html' %}



{% block content %}

<h1>Homepage</h1>

{% endblock content %}

 

<!-- templates/home.html -->

{% extends 'base.html' %}



{% block content %}

<h1>About page</h1>

{% endblock content %}

 

앱에 있는 test 파일 이용한 구동 Test

 

데이터베이스를 사용하지 않는 경우 - SimpleTestCase 사용

데이터베이스를 사용하는 경우 - TestCase 사용

 

from django.test import TestCase
from django.test import SimpleTestCase
# Create your tests here.

class SimpleTests(SimpleTestCase):
    def test_home_page_status_code(self): 
        response = self.client.get('/')
        self.assertEqual(response.status_code, 200)
    def test_about_page_status_code(self): 
        response = self.client.get('/about/')
        self.assertEqual(response.status_code, 200)
 
테스트를 실행하려면 서버 를 종료하고 명령줄에 python manage.py test를 입력합니다( 200 반환 - 정상)

Http 상태 코드 - https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

 

Test Tool

'DoItDJango' 카테고리의 다른 글

Django Admin 사용  (0) 2023.04.14
Heroku  (0) 2023.04.14
데이터 저장  (0) 2023.04.13
URL 별칭  (0) 2023.04.13
조회와 템플릿  (0) 2023.04.13

댓글