gpt4 book ai didi

Django 站点地图索引示例

转载 作者:行者123 更新时间:2023-12-03 11:35:45 25 4
gpt4 key购买 nike

我有以下模型关系:

class Section(models.Model):
section = models.CharField(max_length=200, unique=True)
name = models.CharField(max_length=200, blank = True)


class Article (models.Model):
url = models.CharField(max_length = 30, unique=True)
is_published = models.BooleanField()
section = models.ForeignKey(Section)

我需要为文章创建一个站点地图,其中包含部分的站点地图文件。我在这里阅读 django 文档 http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/

但没有设法找到答案我怎么能:
  • 在这种情况下定义站点地图类
  • 如何将部分参数传递到 url 文件中(如在
    文档)
  • 如果我定义了从哪里可以得到 {'sitemaps': sitemaps}
    站点地图作为应用程序中另一个文件中的 python 类
  • 最佳答案

    Django==2.2
    Python==3.6

    这是在 Django 中使用站点地图索引的更好更简单的方法,
    安装 django.contrib.sitemaps在项目中添加到 INSTALLED_APPSsettings.py .
    在您的应用程序中编写 sitemaps.py 文件并根据需要定义类。示例扩展 django.contrib.sitemap.Sitemap StaticViewSitemap 静态 URL 的站点地图类,确保所有静态 URL 的名称为 reverse查找(从 URL 名称获取 URL)
    # app/sitemap.py

    from django.contrib import sitemaps
    from django.urls import reverse

    class StaticViewSitemap(sitemaps.Sitemap):
    priority = 0.6
    changefreq = 'monthly'

    def items(self):
    # URLs names
    return ['index', 'aboutus', 'ourstory',]

    def location(self, item):
    return reverse(item)

    在 urls.py 中导入所有站点地图
    django.contrib.sitemaps.views 导入站点地图和索引
    然后用站点地图创建一个字典
    # urls.py

    from django.contrib.sitemaps.views import sitemap, index
    from app.sitemaps import StaticViewSitemap

    # add as many as sitemap you need as one key
    sitemaps = {
    "static" : StaticViewSitemap,
    }
    urlpatterns = [

    # sitemap.xml index will have all sitemap-......xmls index
    path('sitemap.xml', index, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.index'),

    # sitemap-<section>.xml here <section> will be replaced by the key from sitemaps dict
    path('sitemap-<section>.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
    ]

    在这里,您将有两个站点地图 1. sitemaps.xml 2. sitemaps-static.xml
    运行服务器打开 URL: http://localhost:8000/sitemap.xml
    <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
    <loc>http://127.0.0.1:8000/sitemap-static.xml</loc>
    </sitemap>
    </sitemapindex>

    Django 自动创建站点地图索引现在打开 URL: http://127.0.0.1:8000/sitemap-static.xml
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
    <loc>http://localhost:8000/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    </url>
    <url>
    <loc>http://localhost:8000/about-us</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    </url>
    <url>
    <loc>http://localhost:8000/our-story</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    </url>
    </urlset>

    关于Django 站点地图索引示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392338/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com