Django – 网站地图框架

Django – 网站地图框架

搜索引擎对网站的URL进行抓取和索引,以在其搜索结果中显示这些URL。搜索引擎建议明确提交一个XML文件,其中包括你网站的所有重要和最新的URLs,以加快抓取和索引。Django提供了一个Sitemap框架,以减轻生成XML文件的过程,并向搜索引擎发出抓取信号。

让我们以Geeks For Geeks为例来理解网站地图的创建。假设Geeks For Geeks每天发布100篇文章,我们必须创建一个由这些文章的URL组成的XML文件。

按照Django介绍和安装来建立一个虚拟环境并安装Django

第1步:通过以下命令启动一个项目

django-admin startproject geeks_site

第2步:将目录改为geeks_site

cd geeks_site

第3步:创建一个名为**blog的应用程序。

python manage.py startapp blog

第4步:将你的应用程序添加到settings.py中。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog.apps.BlogConfig',
]

步骤5:blog*应用程序中创建一个名为Article**的模型。

  • Fields :
  • 标题。用于存储文章对象的标题
  • lastedit_date: 用于存储文章对象的最后更新日期。
  • Method :
  • get_absolute_url。返回指向一个对象的绝对URL

models.py

class Article(models.Model):
    title = models.CharField(max_length=200)
    lastedit_date = models.DateTimeField()
  
    def get_absolute_url(self):
        return "/p/%i/" % self.id

第6步:blog/admin.py中注册你的模型,以便它在管理面板中显示出来。

admin.py

# blog/admin.py
from django.contrib import admin 
from .models import Article
  
admin.site.register(Article)

第7步:现在,为了迁移所有的修改并启动服务器,在终端运行以下命令

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

创建一个超级用户账户来登录管理面板

python manage.py createsuperuser

现在,访问管理面板,http://127.0.0.1:8000/admin/

Django - 网站地图框架

现在,让我们安装和初始化Django的网站地图框架

安装网站地图

为了使用网站地图框架,你需要对你的settings.py做如下修改。

  • 网站地图框架在Django中默认是不启用的,所以在INSTALLED_APPS中加入以下内容
django.contrib.sitemaps
  • 网站地图框架使用另一个Django内置的网站框架来实现其功能。另外,在INSTALLED_APPS中添加以下内容
django.contrib.sites

然后在INSTALLED_APPS列表后添加以下内容

SITE_ID = 1
# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
      'django.contrib.sitemaps,
    'blog'
]
  
SITE_ID = 1

网站地图的初始化

步骤1:在你的blog应用程序中创建一个名为sitemap.py的文件

第2步:sitemap.py中为你的文章模型创建一个网站地图类。

  • ArticleSitemap类覆盖了Sitemap类的以下两个方法
  • items: 返回所有的文章对象,其URLs将被包含在XML文件中。
  • lastmod:使用博客应用中文章模型的lastedit_date字段返回对象的最后修改日期。

sitemap.py

from django.contrib.sitemaps import Sitemap
from .models import Article
  
class ArticleSitemap(Sitemap):
    def items(self):
        return Article.objects.all()
        
    def lastmod(self, obj):
        return obj.lastedit_date

步骤3:在你的blog/urls.py.中加入这些行。

from django.contrib.sitemaps.views import sitemap
from blog.sitemap import ArticleSitemap
from django.urls import path
  
  
path('sitemap.xml', sitemap, {'sitemaps': {'article' : ArticleSitemap}},
     name='django.contrib.sitemaps.views.sitemap')

这里’sitemap.xml’指向Sitemap框架的sitemap视图,在上一步中创建的ArticleSitemap类是指定格式的必要参数,即{‘sitemaps’:{‘文章’:ArticleSitemap}。

现在,再次迁移你的所有修改并启动服务器

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

第4步:在文章部分,创建一些文章。点击添加按钮后,你会看到下面的字段。

Django - 网站地图框架

当你点击网站部分时,你会看到这样的内容

Django - 网站地图框架

对管理面板中的 “网站 “部分做如下修改

Django - 网站地图框架

现在在你的本地机器上访问http://127.0.0.1:8000/sitemap.xml。由所有URL组成的最终XML文件将被呈现为.NET。

Django - 网站地图框架

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Django 教程