XML-файл динамической карты сайта приложения Flask с использованием MongoDB | Easy2Digital
В этой статье речь пойдет о разработке динамической карты сайта xml для вашего приложения Flask, что займет всего несколько минут.
На что похож морозный день, если вы создаете карту сайта и время от времени обновляете ее вручную. Или платить за повторяющуюся ежемесячную подписку всего лишь за вторую разовую работу — тоже не самое разумное решение.
Если вы ищете лучший способ, например, почувствовать вкус мраморной говядины, этот кусок здесь для вас. В этой статье мы поговорим о разработке динамической карты сайта xml для вашего приложения Flask. Пойдем!
Содержание: Учебное пособие по XML динамической карты сайта приложения Flask
- Пакеты Python:
urlparse, render_template, make_response
- Разобрать домен верхнего уровня
- Список статических URL-адресов
- Динамический список URL-адресов
- XML-шаблон карты сайта
- Настройте заголовок ответа
- Полный Python-скрипт динамической карты сайта XML
Пакеты 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 )