2010-04-07 python jinja bottle sitemap
Делаем страничку /sitemap.xml, нам нужно получить только ссылки на страницы и время их последнего изменения
@route('/sitemap.xml')
def sitemap():
curtime = time.strftime("%Y-%m-%dT%H:%M+00:00", time.gmtime())
res = []
# Запрос к базе данных
cur.execute('SELECT id,dtime FROM pages')
for r in cur:
res.append( [r[0], time.strftime("%Y-%m-%dT%H:%M+00:00",time.localtime(r[1]))] )
return template('sitemap',res=res,curtime=curtime)
<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>http://example.com/</loc>
<lastmod>{{curtime}}</lastmod>
</url>{% for m in res %}
<url>
<loc>http://example.com/page/{{m[0]}}</loc>
<lastmod>{{m[1]}}</lastmod>
</url>{% endfor %}
</urlset>
@route('/robots.txt')
def robots():
return 'User-agent: *\nAllow: /\n\n'