blog details
author


blog detail

如果您构建站点地图并逐时手动更新,那么寒冷的日子会是什么样子。或者一次性为第二个作品支付每月定期订阅费用也不是一个明智的决定。

如果您正在寻找更好的方法,例如吃更好的大理石花纹牛肉的感觉,那么这道菜就适合您。本文将讨论为 Flask 应用程序开发动态站点地图xml。我们走吧!

目录:Flask 应用程序动态站点地图 XML 教程

Python 包:urlparse、render_template、make_response

像往常一样,我们需要骨架化基本功能。以下是开发有品味且令人难以置信的动态站点地图 xml 所需的包列表

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

稍后,我将详细介绍这道菜中每个包装的用途。

解析App顶级域名

首先,在裁定映射 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路径,我们可以提前在Mongo中设置一组数据并在函数中调用它们。这是代码示例:

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

站点地图 XML 模板

为了从服务器端捕获动态数据源,我们需要在前端 html 模板中使用 Jinja2。这是代码示例:

{% 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"

动态站点地图 XML 的完整 Python 脚本

在 AWS EC2 上部署 Flask 应用程序的完整脚本和命令

如果您对第 74 章 – 使用 MongoDB 的 Flask 应用程序动态站点地图 XML 感兴趣,请通过添加消息“第 74 章 + Flask 动态站点地图”来订阅我们的新闻通讯。我们会立即将脚本发送到您的邮箱。

我希望您喜欢阅读第 74 章 – 使用 MongoDB 的 Flask 应用程序动态站点地图 XML。如果您这样做了,请通过执行下列操作之一来支持我们,因为这总是对我们的频道有所帮助。


分享文章

目前没有留言...

shape shape

免费订阅最新内容更新

获取独家自动样式内容更新和优惠