Skip to main content

Sitemap generator for Python frameworks

Project description

Dynamic sitemap

master dev
Build Status Build Status

A simple sitemap generator for Python projects.

Already implemented:

  • metaclass SitemapMeta
  • FlaskSitemap

Installation

  • using pip
pip install dynamic-sitemap

or

  • as a git submodule
git submodule add -b master --name sitemap https://github.com/KazakovDenis/dynamic-sitemap path/to/app/sitemap

Usage

"Hello world" example:

from framework import Framework
from dynamic_sitemap import FrameworkSitemap

app = Framework(__name__)
sitemap = FrameworkSitemap(app, 'https://mysite.com')
sitemap.update()

Then run your server and visit http://mysite.com/sitemap.xml.

Basic example with some Models:

from framework import Framework
from dynamic_sitemap import FrameworkSitemap
from models import Post, Tag

app = Framework(__name__)
sitemap = FrameworkSitemap(app, 'https://mysite.com')
sitemap.config.IGNORED.update(['/edit', '/upload'])
sitemap.config.TEMPLATE_FOLDER = ['app', 'templates']
sitemap.update()
sitemap.add_rule('/blog', Post, lastmod='created')
sitemap.add_rule('/blog/tag', Tag, priority=0.4)

Also you can set configurations from your class (and it's preferred):

sm_logger = logging.getLogger('sitemap')
sm_logger.setLevel(30)

class Config:
    TEMPLATE_FOLDER = os.path.join(ROOT, 'app', 'templates')
    IGNORED = {'/admin', '/back-office', '/other-pages'}
    ALTER_PRIORITY = 0.1
    LOGGER = sm_logger

sitemap = FrameworkSitemap(app, 'https://myshop.org', config_obj=Config)
sitemap.add_rule('/goods', Product, slug='id', lastmod='updated')

Moreover you can get a static file by using:

sitemap.build_static()

Some important rules:

  • use update() method after setting configuration attributes directly (not need if you pass your config object to init)
  • use get_dynamic_rules() to see which urls you should add as a rule or to ignored
  • config.IGNORED has a priority over add_rule
  • use helpers.Model if your ORM is not supported

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamic-sitemap-0.1.0a1.tar.gz (8.8 kB view hashes)

Uploaded Source

Built Distribution

dynamic_sitemap-0.1.0a1-py3-none-any.whl (11.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page