Skip to main content

Serving flat pages with Django without views and database.

Project description


Serving flat pages with Django without views and database.

Helps to separate deployment of front- and backend.


Install the latest release with pip:

pip install django-flatly

Than add a URL to urlpatterns:

urlpatterns = [
    # all others urls above - flatly.urls last one to try!
    path('', include('flatly.urls')),

Quick start

  1. In your root template directory create flatly folder.

  2. Define FLATLY_TEMPLATE_ROOT setting:

  3. Any .html files you create in your flatly directory will be automatically served. So if you create a new file flatly/about_us/overview.html then it will be visible at /about-us/overview/.

Note that django-flatly automatically replaces underscores (_) with dashes (-).

Search path

Suppose you are requesting the page /account/user-profile/, django-flatly will render the first template that exists:

  1. ${FLATLY_TEMPLATE_ROOT}/account/user_profile
  2. ${FLATLY_TEMPLATE_ROOT}/account/user_profile.html
  3. ${FLATLY_TEMPLATE_ROOT}/account/user_profile/index.html


Template root

django-flatly based on Django's get_template function. So, any user can access any template on your website. You can restrict access to certain templates by adding the following:


By adding the above configuration django-flatly will add
specified path prefix to the template name before search.

Suppose you are requesting the page /account/user/, django-flatly will call something like get_template('flatly/account/user.html').

Note that flatly folder can be located in both root and application template directories.

Defaults to None.

Template engine

You can restrict the template search to a particular template engine.

FLATLY_ENGINE = 'jinja2'

Defaults to None.


List of file extensions to iterate over all matching files.

FLATLY_EXTENSIONS = ['html', 'jinja2']

Defaults to html.

Development and Testing

After cloning the Git repository, you should install this in a virtualenv and set up for development:

virtualenv .venv
source .venv/bin/activate
pip install -e .[dev]

Then, you can run tests:

# or
tox -e py38-django30

Project details

Download files

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

Files for django-flatly, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size django_flatly-0.1.0-py2.py3-none-any.whl (10.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size django-flatly-0.1.0.tar.gz (5.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page