XML-файл динамической карты сайта приложения Flask с использованием MongoDB | Easy2Digital

В этой статье речь пойдет о разработке динамической карты сайта xml для вашего приложения Flask, что займет всего несколько минут.

На что похож морозный день, если вы создаете карту сайта и время от времени обновляете ее вручную. Или платить за повторяющуюся ежемесячную подписку всего лишь за вторую разовую работу — тоже не самое разумное решение.

Если вы ищете лучший способ, например, почувствовать вкус мраморной говядины, этот кусок здесь для вас. В этой статье мы поговорим о разработке динамической карты сайта xml для вашего приложения Flask. Пойдем!

Содержание: Учебное пособие по XML динамической карты сайта приложения Flask

Пакеты Python: urlparse, render_template, make_response

Как обычно, нам нужно скелетировать основные функции. Вот список пакетов, необходимых для разработки вкусной и невероятной динамической карты сайта xml.

  • from urllib . parse import urlparse
  • From flask import render_templte, make_response

Через мгновение я расскажу более подробно о том, для чего предназначена каждая упаковка в этом блюде.

Разобрать верхний домен приложения

Прежде всего, необходимо определить адрес домена верхнего уровня, прежде чем принимать решение о сопоставлении URL-адресов. Для лучшего вкуса здесь нам понадобится urlparse. Ниже приведен пример следующего содержания:

   host_components = urlparse ( request . host_url )

   host_base = host_components . scheme + "://" + host_components . netloc

Список статических URL-адресов

Перед созданием каждого URL-адреса нам необходимо разделить статические и динамические URL-адреса, поскольку некоторые маршруты задаются переменными.

Нам нужно создать список статических URL-адресов и указать, какие типы статических URL-адресов будут добавлены в список. Вот пример кода следующим образом:

   static_urls = list ()

   for rule in app . url_map . iter_rules ():

       if not str ( rule ). startswith ( "/inactive" ):

           if "GET" in rule . methods and len ( rule . arguments ) == 0 :

               url = {

                   "loc" : f " { host_base }{ str ( rule ) } "

}

               static_urls . append ( url )

Для приготовления этого блюда нужны встроенные методы Flask url_map, startswith

Динамический список URL-адресов

Для получения переменной URL-пути мы могли бы заранее настроить набор данных в Mongo и вызвать их в функции. Вот пример кода:

  dynamic_urls = list ()

dynamicURL variable = db .sample. find ({})

XML-шаблон карты сайта

Чтобы захватить динамический поток данных со стороны сервера, нам нужно использовать Jinja2 в HTML-шаблоне внешнего интерфейса. Вот пример кода:

{% for url in static_urls %}

< url >

 < loc > {{ url["loc"] }} </ loc >

</ url >

{% endfor %}

{% for url in dynamic_urls %}

< url >

 < loc > {{ url["loc"] }} </ loc >

</ url >

{% endfor %}

Настройте заголовок ответа

И последнее, но не менее важное: нам нужно настроить XML-заголовок карты сайта, который отличается от других маршрутов. Для настройки заголовка мы можем использовать make_response

   response = make_response ( xml_sitemap )

   response . headers [ "Content-Type" ] = "application/xml"

Полный Python-скрипт динамической карты сайта XML

Полные сценарии и команды развертывания приложений Flask на AWS EC2

Если вам интересна глава 74 – XML-файл динамической карты сайта приложения Flask с использованием MongoDB, пожалуйста, подпишитесь на нашу рассылку , добавив сообщение «Глава 74 + flask динамическая карта сайта» . Мы отправим вам сценарий немедленно на ваш почтовый ящик.

Надеюсь, вам понравится читать главу 74 — Динамическая карта сайта приложения Flask с использованием MongoDB. Если вы это сделали, пожалуйста, поддержите нас, выполнив одно из перечисленных ниже действий, потому что это всегда помогает нашему каналу.

  • Поддержите и пожертвуйте нашему каналу через PayPal ( paypal.me/Easy2digital )
  • Подпишитесь на мой канал и включите колокольчик уведомлений канала Easy2Digital Youtube .
  • Подписывайтесь и лайкайте мою страницу Страница Easy2Digital в Facebook
  • Поделитесь статьей в своей социальной сети с хэштегом #easy2digital
  • Вы подписываетесь на нашу еженедельную рассылку, чтобы получать последние статьи, видео и коды скидок Easy2Digital.
  • Подпишитесь на наше ежемесячное членство через Patreon, чтобы пользоваться эксклюзивными преимуществами ( www.patreon.com/louisludigital )