Blog demo for Potato
Python JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


by Stuart Cox (

A demonstration Django on App Engine project for Potato.

An instance of this project is hosted here:

It includes:
- Django's model-template-view architecture
- Models following Google App Engine's Entity architecture
- Hosted on Google App Engine
- HTML/XHTML (of course)
- CSS, with a few CSS3 properties
- JavaScript with jQuery for a couple of interface bits, including tinyMCE WYSIWYG editor

The blog itself is wrapped up into an app which drops into a wider project and is fairly self-contained. Static files and templates are local to the app, then static files are collected and served from a 'global' static folder for the project for deployment, using django-staticfiles.

The blog's templates inherit from the project's page template so, for example, a menu linking to other apps could be added to the layout without delving into the app's code. The project can pass URL patterns to the blog app using a single 'include'. The blog's views offer a little bit of tweakability via blog.urls in the form of optional keyword arguments for view functions.

The following things would be on my 'todo' list if this was taken further:
- The control panel needs an authentication layer with user logins, although it's the kind of thing which can vary massively between projects, so seemed silly spending time learning one way to use Django's auth features for a demo when you probably do things very differently at Potato!
- The views and templates could be less closely coupled, allowing more flexibility and freedom
- The blog app's templates could be less closely coupled with the project's page template; currently they rely on the presence of certain blocks in the template they inherit from
- Posts could allow an image to be uploaded to represent the post; I've provided a simple model to represent such an image and shown how it would be related to a post, but haven't yet provided an interface for these entries to be created
- With an authentication layer in place, posts could be related to the author; again, I've provided a model for a user and shown how it would be related to a post
- A search feature could be implemented using 'title__contains' and 'content__contains' lookups