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 |
댓글