Philo is a powerful content-management system built with Django.
Features
Philo allows the creation of complex site structures from Django’s web-based admin interface (or any other database-editing interface). For a simple site, you will use the following three objects, included in the Philo core.
- Nodes are the basic building blocks of a website using Philo. They define the URL hierarchy and connect each URL to a View subclass instance which is used to generate an HttpResponse.
- Templates are Django templates, stored in the database and editable from the Django admin (or similar).
- Pages are a simple view subclass which return a basic HTML page according to a template. They have related, editable Contentlets and Content References based on {% container %} tags used in the template.
Philo also provides a number of useful template tags, in particular {% container <name> %}
, which generates a relationship (and a field in the admin interface) on any pages which use that template.
A Simple Example
You can use also collections, redirects, files, content references (all included in the Philo core), as well as the Philo contrib apps and your own code to create and manage more powerful, complex websites.
Batteries Included
Following Python and Django’s “batteries included” philosophy, Philo includes a number of optional packages that simplify common website structures. These are stored in philo.contrib and include:
- Penfield Blog and newsletter management.
- Shipherd Powerful site-navigation.
- Sobol Custom search-engines.
- Waldo Custom authentication systems.
- (in development) Gilbert Alternative web-based admin.
- (in development) Julian Calendar and events system.
- (planned) Forums.
- (planned) Wikis.