본문 바로가기
Programming

Django Sitemap 만들기

by 느리게 걷는 즐거움 2024. 3. 19.
반응형

Django Sitemap 만들기

jango로 생성한 website에 sitemap.xml을 구성하는 방법을 정리합니다. [WINDYBAY]에서 내용을 잘 정리해 주셔서 해당 내용을 따라서 진행하며 내용을 정리합니다. XML 파일을 쉽게 생성할 수 있는 높은 수준의 사이트맵 생성 프레임워크가 함께 제공됩니다.  설치 및 적용 과정을 정리합니다.

설치 

사이트맵 앱 설치를 위해 아래와 같이 진행합니다. INSTALLED_APPS 에 `django.contrib.sitemaps` 와 `django.contrib.sites`를 추가합니다. `django.contrib.sites`는 둘 이상의 사이트를 지원하는 기능을 제공하기 때문에 단일 SITE인 경우 `SITE_ID = 1`설정을 추가해야 합니다.

INSTALLED_APPS = [
    ...
    'django.contrib.sites',
    'django.contrib.sitemaps',
    ...
]

SITE_ID = 1
 

초기화

장고 사이트에 사이트을 활성화 하기 위해서 sitemap.xml을 url에 추가합니다. 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
    ...
]

사이트맵에 추가할 포스트 정보를 가져오는 View Class를 생성합니다. Items 메서드에 구현된 post 쿼리 결과가 xml을 구성하는 정보로 추가 됩니다. 코드로 구현 시에는 Sitemap을 사용하기 위해서 `django.controb.sitemaps`에서 Sitemap을 import합니다.

from django.contrib.sitemaps import Sitemap

class BlogSitemap(Sitemap):
    changefreq='weekly'
    priority=0.5

    def items(self):
        return Post.objects.all()

 

Sitemap.xml 주소 변경하기

설정을 완료한 후 자신의 도메인주소/sitemap.xml을 확인하면 자신의 sitemap.xml을 확인할 수 있습니다. xml파일은 정상적으로 생성되 었으나 아래의 웹피이지 주소가 다른 경우가 있습니다. 이 경우 웹사이트 장고 admin으로 접속해서 `Site`메뉴로 들어가서 자산의 도메인 이름에 맞게 정보를 수정합니다.

반응형