python django template 만들기

    기본적으로 템플릿은 html으로 프론트엔트를 만드는 것이다.

    자기가 원하는 형태로 html 파일을 만들어 프로젝트 내 템플릿 폴더에 넣어두고 불러서 적용하기만 하면 된다.

     

    장고 템플릿 적용

    > 앱이름/views.py

    from django.shortcuts import render
    
    def template_test(request):
        return render(request, '템플릿이름.html')

    템플릿 적용을 위해서는 뷰에 추가해주면 된다.

    뷰에 추가했으니 url에도 추가해준다.

     

    기본적으로 모든 기능은 동작하기 위해서 뷰와 url에 추가해야 한다.

    화면이 없거나 데이터베이스가 필요 없는 기능은 모델이나 템플릿이 없어도 되지만 뷰와 url은 무조건 있어야 한다.

     

    > config/urls.py

    from 앱이름.views import template_test
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('temp/', template_test),
    ]

    위와 같이 template_test로 뷰이름을 만들면 이렇게 추가해주면 된다.

     

    이렇게 하면 템플릿을 불러올 준비는 되었다.

    하지만 그대로 실행해서 주소/temp로 접속하면 템플릿을 찾을 수 없어서 오류가 뜨게 된다.

     

     

     

    장고 템플릿 폴더 설정

    기본적으로 템플릿을 만들었다면 각 앱 안에 templates 폴더를 만들어서 html 등 파일을 넣어주어야 한다.

    그게 아니라 하나의 폴더에서 관리하고 싶다면 루트 아래 원하는 이름의 폴더를 만들고 그 안에 넣고,

    장고가 render가 호출될 때 그 폴더 안에서 찾도록 설정을 바꿔줘야 한다.

     

    root에 html이라는 폴더를 만들어서 템플릿을 넣었다고 가정해보자.

    그럼 settings.py 안에 html 폴더를 등록해주면 된다.

     

    > config/settings.py

    import os
    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [
                os.path.join(BASE_DIR, 'html')
            ],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]

    파일을 열어보면 TEMPLATES라는 부분이 있다.

    여기에 'DIRS'에 추가를 해주면 되는데 최초는 비어 있을 것이다.

     

    리스트 안에 os.path.join(BASE_DIR, '템플릿 폴더이름')

    이렇게 등록해주면 되는데 이때 BASE_DIR은 루트폴더를 의미하는 것이니 루트 아래 만든게 아니라면 path를 잘 설정해주도록 하자.

     

    Photo by Rodion Kutsaev on Unsplash

     

    ※ 함께 보면 좋은 글

     

    셀레니움 네이버 로그인 캡챠 피하기 클릭!

    유튜브 재생목록 총 재생시간 구하는 코드 클릭!

    셀레니움 네이버 검색광고 API 활용 잔액확인 하는 법 클릭!

    셀레니움 최신버전 iframe 문법 클릭!

    크롬 굵은 폰트 번짐 해결하는 방법 클릭!