Recipe module and example site for Django
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status Coverage Status

This is a complete recipe system using Python + Django. A complete demonstration is live at


  • Most important models, such as Recipe, Food, Ingredient, Direction, Category, and a few more.
  • Very nice admin interface for creating recipes with inline ingredients and directions.
  • Front-end: only a recipe_list and recipe_detail so far, but the recipe_detail has an experimental method of displaying recipes that is based on this LaTeX style: (apparently based on style in a famous German cookbook by Dr. Oetker (Gromzik, J.; Reich, C.; Sander, C. (ed.): Dr. Oetker Schulkochbuch – Das Original. Ceres, Bielefeld, 1996.)
  • Automatic conversion from imperial weights and volumes to grams
  • Automatic nice formatting of imperial volumes.
  • Uses South database migration system.

Competitors/related projects

  • OpenEats - Django based recipes website.
  • KRecipes - KDE-based desktop recipes software.
  • Ben Collins-Sussman's effrecipes - Simple, but it works. Not under active development.
  • Recipes on Rails - Ruby on Rails recipes site. Not open source as far as I know. Embeds "Source: Recipes on Rails" on all photos and has google ads. Great site though. One thing it has that my site lacks is per-direction photos. This would be easy to do. I already have per-direction ingredients.

If you are aware of any other similar projects please let me know. I am especially interested in any other web-based and open-source cookbook projects.

Getting started

Follow these steps to get the recipes site up and running.

  1. Fork or clone the project.
  2. run sudo aptitude install libmysqlclient-dev python-dev gettext
  3. Install pipenv if you don't already have it
  4. Run pipenv install --dev
  5. Run pipenv shell
  6. Copy django_recipes/settings/ to django_recipes/settings/ and alter settings as necessary.
  7. Create database as per settings defined in django_recipes/settings/ (not necessary if using sqlite)
  8. Run .
  9. Run source env/bin/activate
  10. Run ./ syncdb from the menu
  11. Run ./ migrate
  12. Run ./ runserver
  13. Go to http://locahost:8000 in your browser
  14. The admin interface is at http://localhost:8000/admin
  15. You can run unit tests by running ./

Initial Data

To help get started I've provided a dump of my recipes site's tables (see dump.sql)