Dynamische XML-Sitemap der Flask-App mit MongoDB | Easy2Digital
In diesem Artikel geht es um die Entwicklung einer dynamischen Sitemap-XML für Ihre Flask-App, die nur wenige Minuten dauert
Wie ein eisiger Tag ist, wenn Sie eine Sitemap erstellen und sie von Zeit zu Zeit manuell aktualisieren. Auch die Zahlung eines wiederkehrenden Monatsabonnements für nur eine zweite Arbeit ist keine kluge Entscheidung.
Wenn Sie auf der Suche nach dem besseren Gefühl sind, besser marmoriertes Rindfleisch zu essen, ist dieses Stück genau das Richtige für Sie. In diesem Artikel geht es um die Entwicklung dynamischer Sitemap-XML für Ihre Flask-App. Lass uns gehen!
Inhaltsverzeichnis: Flask App Dynamic Sitemap XML-Tutorial
- Python-Pakete:
urlparse, render_template, make_response
- Analysieren Sie die Top-Level-Domain
- Statische URL-Liste
- Dynamische URL-Liste
- XML-Sitemap-Vorlage
- Passen Sie den Antwortheader an
- Vollständiges Python-Skript für dynamisches Sitemap-XML
Python-Pakete: urlparse, render_template, make_response
Wie üblich müssen wir die Grundfunktionen skelettieren. Hier ist die Liste der Pakete, die für die Entwicklung geschmackvoller und unglaublich dynamischer Sitemap-XML benötigt werden
-
from urllib . parse import urlparse
-
From flask import render_templte, make_response
Ich möchte gleich näher darauf eingehen, wozu die einzelnen Packungen in diesem Gericht dienen.
Analysieren Sie die Top-Domain der App
Als Erstes ist es unerlässlich, die Top-Level-Domain-Adresse zu ermitteln, bevor Sie die Zuordnung der URLs vornehmen. Um den Gefallen besser schmecken zu können, benötigen wir hier die URL-Analyse. Nachfolgend finden Sie ein Beispiel wie folgt:
host_components = urlparse ( request . host_url )
host_base = host_components . scheme + "://" + host_components . netloc
Statische URL-Liste
Bevor wir jede URL generieren, müssen wir statische und dynamische URLs trennen, da einige der Routen durch Variablen festgelegt werden.
Wir müssen eine statische URL-Liste erstellen und festlegen, welche Art von statischen URLs der Liste hinzugefügt werden sollen. Hier sind die Codebeispiele wie folgt:
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 )
Um dieses Gericht zuzubereiten, sind die in Flask integrierten Methoden url_map, startswith
erforderlich
Dynamische URL-Liste
Um den variablen URL-Pfad abzurufen, könnten wir vorab einen Datensatz in Mongo einrichten und ihn in der Funktion aufrufen. Hier ist das Codebeispiel:
dynamic_urls = list ()
dynamicURL variable = db .sample. find ({})
XML-Sitemap-Vorlage
Um den dynamischen Datenfeed serverseitig zu erfassen, müssen wir Jinja2 in der Frontend-HTML-Vorlage verwenden. Hier ist das Codebeispiel:
{% for url in static_urls %}
< url >
< loc > {{ url["loc"] }} </ loc >
</ url >
{% endfor %}
{% for url in dynamic_urls %}
< url >
< loc > {{ url["loc"] }} </ loc >
</ url >
{% endfor %}
Passen Sie den Antwortheader an
Zu guter Letzt müssen wir den Sitemap-XML-Header anpassen, der sich von anderen Routen unterscheidet. Zum Anpassen des Headers können wir make_response verwenden
response = make_response ( xml_sitemap )
response . headers [ "Content-Type" ] = "application/xml"
Vollständiges Python-Skript für dynamisches Sitemap-XML
Vollständige Skripte und Befehle der Flask-App-Bereitstellung auf AWS EC2
Wenn Sie sich für Kapitel 74 – Dynamische Sitemap-XML der Flask-App mit MongoDB interessieren, Bitte abonnieren Sie unseren Newsletter , indem Sie die Nachricht „Chapter 74 + Flask Dynamic Sitemap“ hinzufügen. . Wir senden Ihnen das Skript umgehend in Ihr Postfach.
Ich wünsche Ihnen viel Spaß beim Lesen von Kapitel 74 – Dynamische Sitemap-XML der Flask-App mit MongoDB. Wenn ja, unterstützen Sie uns bitte, indem Sie eine der unten aufgeführten Maßnahmen ergreifen, da dies unserem Kanal immer weiterhilft.
- Unterstützen Sie unseren Kanal und spenden Sie über PayPal ( paypal.me/Easy2digital )
- Abonnieren Sie meinen Kanal und aktivieren Sie die Benachrichtigungsglocke des Easy2Digital-Youtube-Kanals .
- Folgen und liken Sie meine Easy2Digital-Facebook-Seite
- Teilen Sie den Artikel in Ihrem sozialen Netzwerk mit dem Hashtag #easy2digital
- Sie melden sich für unseren wöchentlichen Newsletter an, um die neuesten Artikel, Videos und Rabattcodes von Easy2Digital zu erhalten
- Abonnieren Sie unsere monatliche Mitgliedschaft über Patreon, um exklusive Vorteile zu genießen ( www.patreon.com/louisludigital )