Skip to main content

Flask extension to add a nice blog to your website

Project description

Canonical blog extension

This extension allows you to add a simple frontend section to your flask app. All the articles are pulled from Canonical's Wordpress back-end through the JSON API.

This extension provides a blueprint with 3 routes:

  • "/": that returns the list of articles
  • "/": the article page
  • "/feed": provides a RSS feed for the page.

Installation

To install this extension as a requirement in your project, you can use PIP;

pip3 install canonicalwebteam.blog

See also the documentation for pip install.

Usage

Templates

The module expects HTML templates at blog/index.html, blog/article.html, blog/blog-card.html, blog/archives.html, blog/upcoming.html and blog/author.html.

An example of these templates can be found at https://github.com/canonical-websites/jp.ubuntu.com/tree/master/templates/blog.

Usage

In your app you can then do the following:

import flask
import talisker.requests
from flask_reggie import Reggie
from canonicalwebteam.blog import BlogViews, build_blueprint, BlogAPI

app = flask.Flask(__name__)
Reggie().init_app(app)
session = talisker.requests.get_session()

blog = build_blueprint(
    BlogViews(
        api=BlogAPI(session=session),
    )
)
app.register_blueprint(blog, url_prefix="/blog")

You can customise the blog through the following optional arguments:

blog = build_blueprint(
    BlogViews(
        blog_title="Blog",
        blog_path="blog",
        tag_ids=[1, 12, 112],
        exclude_tags=[26, 34],
        per_page=12,
        feed_description="The Ubuntu Blog Feed",
        api=BlogAPI(
            session=session,
            use_image_template=True,
        ),
    )
)

Testing

All tests can be run with ./setup.py test.

Regenerating Fixtures

All API calls are caught with VCR and saved as fixtures in the fixtures directory. If the API updates, all fixtures can easily be updated by just removing the fixtures directory and rerunning the tests.

To do this run rm -rf fixtures && ./setup.py test.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

canonicalwebteam.blog-6.2.4.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

canonicalwebteam.blog-6.2.4-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file canonicalwebteam.blog-6.2.4.tar.gz.

File metadata

  • Download URL: canonicalwebteam.blog-6.2.4.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for canonicalwebteam.blog-6.2.4.tar.gz
Algorithm Hash digest
SHA256 c9987410c27d2d90eb834bb736477e261262302690abdbce39cc27df6ea37da9
MD5 582b2103fb45a5dab4dab37408b7c9d4
BLAKE2b-256 ebe972661dad3a507fa7b53ca77fcee921b46f56bae6e155fc87f9541edb8bb8

See more details on using hashes here.

File details

Details for the file canonicalwebteam.blog-6.2.4-py3-none-any.whl.

File metadata

  • Download URL: canonicalwebteam.blog-6.2.4-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for canonicalwebteam.blog-6.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fb20475722fe5eb798ea59778ea38784e6a1eb915c2f9b59ec35f3f3f780863d
MD5 5c5f0bf1a22aa06c3fbdfbaeb996a1cb
BLAKE2b-256 eece02f984886719e8301b3f41cc028bd5a870f0d672c505619775d2557aca5f

See more details on using hashes here.

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