Django4 sitemap 初期設定 まとめ>Django>情報科学

この記事 > Django > 情報科学
作成 更新

None


意味:

Sitemap(サイトマップ)とは、ウェブサイトの構造を、クローラーに伝えるための仕組みのことです。Sitemapは、XMLファイルで作成し、ウェブサイトの運営ではほぼ全てのサイトで使われています。
Djangoでは、Sitemapを効率的に作成する仕組みが、あらかじめ用意されています。

別名:

Sitemap framework サイトマップフレームワーク

動作環境:


Djangoの初期設定を終えた段階を想定しています。
OS: Linux Ubuntu 22
Program: Python 3.7
Framework: Django 4
Database: PostgreSQL 14

コマンドまとめ:


#python仮想環境に入る
source /xxx/[pythonenv]/bin/activate 
source /hikari/bin/activate
source /pythonprj/ramen/bin/activate

cd /xxx/[djangoproject] #projectディレクトリへ移動
cd /hikari/front
cd /pythonprj/pasta

#INSTALLED_APPSへ追加
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.sites", #追加
"django.contrib.sitemaps", #追加
]

#django.contrib.sitesは、Djangoのバージョンによって、デフォルト設定である場合と、デフォルト設定でない場合があります。


#/pythonprj/pasta/articles に sitemap.py を追加
from django.contrib.sitemaps import Sitemap
from .models import Article

class BCategorySitemap(Sitemap): #他のClassも同様に設定する
changefreq = "yearly"
priority = 0.3
protocol = 'https'

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

def lastmod(self, obj):
return obj.created_at


#/pythonprj/pasta/urls.py に 以下を追加
from django.contrib.sitemaps.views import sitemap, index
from articles.sitemaps import BCategorySitemap, ACategorySitemap, ArticleSitemap, AmpSitemap
from django.urls import path
sitemaps = {
'BCategory': BCategorySitemap,
'ACategory': ACategorySitemap,
'Article': ArticleSitemap,
'Amp': AmpSitemap,
}
path('sitemap.xml', index, {'sitemaps': sitemaps}),
path('sitemap-<section>.xml', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'),

#gunicornの動作確認
sudo systemctl status gunicorn #状態確認
sudo systemctl restart gunicorn #再起動
sudo systemctl enable gunicorn #自動再起動の設定

#ブラウザの動作確認
https://tokyo-sensei.com/sitemap.xml #ブラウザでアクセス

探究資料:


djangoproject.com.

全文を読む


Django

Github

Python

Nginx

Windows

Linux

PostgreSQL

ウェブ

プログラミング

中学受験講座

高校受験講座

大学受験講座

社会人講座