This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

An template based the flatpages like app. Not like django’s flatpages app, django-roughpages render a template file which determined from the accessed URL. It is quite combinient when you want to render simple static page. You do not need to prepare urls.py or views.py anymore for that kind of simple static page.

django-roughpages call roughpages.views.roughpage view with the accessed URL when django raise Http404 exception. The view automatically find the corresponding template file from roughpages directory in one of your template directories. Assume if the user accessed http://localhost/foo/bar/hoge/. If there is no urls pattern patched with the URL, django-roughpages try to find corresponding template file such as templates/roughpages/foo/bar/hoge.html. If django-roughpages find the corresponding template file, it will render the template and return the HttpResponse, otherwise it re-raise Http404 exception.

You can complicatedly select the corresponding template file. django-roughpages determine the filename with a backend system. The default backend is roughpages.backends.AuthTemplateFilenameBackend and it prefer hoge.anonymous.html or hoge.authenticated.html than hoge.html depends on the accessed user authentication state. Thus you can simply prepare the page for authenticated user as <something>.authenticated.html and for anonymous user as <something>.anonymous.html. Note that the filename which contains '.' is not allowed thus user cannot access hoge.authenticated.html with a url like /hoge.authenticated to prevent unwilling file acccess.

You can control the backend behavior with making a custom backend. To make a custom backend, you need to inherit roughpages.backends.TemplateFilenameBackendBase and override prepare_filenames(self, filename, request) method. The method receive an original filename and HttpRequest instance and must return a filename list. The django-roughpages then try to load template file from the beginning of the list, thus the order of the appearance is the matter.

Installation

Use pip like:

$ pip install django-roughpages

Usage

Configuration

  1. Add roughpages to the INSTALLED_APPS in your settings module

    INSTALLED_APPS = (
        # ...
        'roughpages',
    )
    
  2. Add our extra fallback middleware

    Django >= 1.10

    MIDDLEWARE = (
        # ...
        'roughpages.middleware.RoughpageFallbackMiddleware',
    )
    

    Django < 1.10

    MIDDLEWARE_CLASSES = (
        # ...
        'roughpages.middleware.RoughpageFallbackMiddleware',
    )
    
  3. Create roughpages directory in one of your template directories specified with settings.TEMPLATE_DIRS

Quick tutorial

  1. Create roughpages/foo/bar/hoge.html as follow

    <html>
    <body>
        This is Hoge
    </body>
    </html>
    
  2. Run syncdb and Start development server with python manage.py syncdb; python manage.py runserver 8000

  3. Access http://localhost:8000/foo/bar/hoge/ and you will see “This is Hoge”

  4. Create roughpages/foo/bar/piyo.anonymous.html as follow

    <html>
    <body>
        This is Piyo Anonymous
    </body>
    </html>
    
  5. Create roughpages/foo/bar/piyo.authenticated.html as follow

    <html>
    <body>
        This is Piyo Authenticated
    </body>
    </html>
    
  6. Access http://localhost:8000/foo/bar/piyo/ and you will see “This is Piyo Anonymous”

  7. Access http://localhost:8000/admin/ and login as admin user.

  8. Access http://localhost:8000/foo/bar/piyo/ and you will see “This is Piyo Authenticated”

Note

Any dots (‘.’) in a last part of URL is replaced to underscore (‘_’) to prevent a security risk. See https://github.com/lambdalisue/django-roughpages/issues/3

Release History

Release History

0.3.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django_roughpages-0.3.0-py2-none-any.whl (17.7 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Nov 13, 2016
django-roughpages-0.3.0.tar.gz (10.4 kB) Copy SHA256 Checksum SHA256 Source Nov 13, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting