46 장고 프레임워크 Sitemap 만들기
46.1 Django Sitemap 만들기 - base.py
빙, 구글, 네이버 등 사이트를 등록할때 필요한 사이트맵을 만들어 보자!!
base.py 설정 파일을 열어 sitemap 패키지를 추가한다.
#config/settings/base.py
SITE_ID = 1
'django.contrib.sites',
django.contrib.sitemaps',
46.2 Django Sitemap 만들기 - sitemaps.py
사이트맵을 만들기 위해 config.sitemaps.py 신규 파일을 생성했다.
PyBlog model을 import 하고
location을 오버라이드 해서 /blog/pk 가 되도록 경로 설정하였다.
#config/sitemaps.py
from django.contrib.sitemaps import Sitemap
from myapp.blog.models import PyBlog
class PytonBlogSitemap(Sitemap):
changefreq = 'weekly'
priority = 0.7
def items(self):
results = PyBlog.objects.all().order_by('-regist_dt')
return results
def location(self, obj):
return """/blog/%s""" % obj.pk
def lastmod(self, obj):
return obj.update_dt
46.3 Django Sitemap 만들기 - urls.py
urls.py 에 sitemap.xml path와
sitemaps ={} 부분은 config.sitemaps 안의 PythonBlogSitemap 클래스 이다.
#config/urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.contrib.sitemaps.views import sitemap
from config.sitemaps import PytonBlogSitemap
sitemaps = {
'blog':PytonBlogSitemap,
}
urlpatterns = [
path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='sitemap'),
path('admin/', admin.site.urls),
path("", include("myapp.blog.urls")),
]
if settings.DEBUG:
if "debug_toolbar" in settings.INSTALLED_APPS:
import debug_toolbar
urlpatterns = [path("__debug__/", include(debug_toolbar.urls))] + urlpatterns
위 설정이 다 되었으면 아래 코드를 한번 실행하자.
python manage.py makemigrations
python manage.py migrate
46.4 브라우저에서 Django sitemap 확인하기 - example.com
46.5 브라우저에서 Django sitemap 확인하기 -Sitesadmin 수정하기
Comments
Login: