Copright
Copyright 2007 Packt Publishing
CherryPy Essentials
Rapid Python Web Application Development
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2007
Production Reference: 2220307
Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK.
ISBN 978-1-904811-84-8
www.packtpub.com
Cover Image by www.visionwt.com
Credits
Author
Sylvain Hellegouarch
Reviewers
Rmi Delon
Robert Brewer
Development Editor
Nanda Padmanabhan
Technical Editors
Saurabh Singh
Shayantani Chaudhuri
Ved Prakash Jha
Editorial Manager
Dipali Chittar
Project Manager
Patricia Weir
Project Coordinator
Sagara Naik
Indexer
Bhushan Pangaonkar
Proofreader
Chris Smith
Layouts and Illustrations
Shantanu Zagade
Manjiri Nadkarni
Cover Designer
Shantanu Zagade
About the Author
Sylvain Hellegouarch is an IT Software Consultant dedicated to the development of free software projects such as CherryPy. Since 2004, he has been coordinating and administrating the community efforts around the project providing support for newcomers and seasoned developers, alike. In 2006, he developed 'bridge' and 'amplee', two Python-based projects centered on XML and the upcoming Atom Publishing Protocol respectively.
He has also been deeply involved in The Viberavetions Project, a comprehensive grassroots solution for independent artists and musicians to better connect with consumers, as well as the nuXleus project, a platform designed for faster, more reliable inter- and intra-application and personal communication.
Born in France, Sylvain graduated with a degree in Computer Science from South Brittany University, Lorient, France in 2002. Since then he has been working as an IT consultant for a variety of companies, both small and large. He currently resides in the United Kingdom.
Acknowledgement
Throwing myself into the adventure of writing a book was a challenge I had in mind for a while before Packt Publishing came along and I do thank them for trusting me on the CherryPy book. Overall writing a book is a task you can't carry alone; editors and reviewers are critical to the release of a good quality book. I thoroughly thank Robert Brewer and Rmi Delon for undertaking the task of reviewing my work and I much appreciate how difficult it has been. Both contributed complementary feedback that hopefully will make you enjoy reading this book. Beyond that I want to thank Robert for making CherryPy such a fantastic product to use; I hope this book will show how professional CherryPy is. Of course all of this would not have been possible if Rmi, the founder of the project, had not given the keys and his full trust to the community for carrying the project. In addition I would like to thank Christian Wyglendowski who has done a fantastic job at supporting the community for so long with such indulgence and sense of humor. I would also like to give thanks to my contacts at Packt Publishing, Nanda Padmanabhan, Patricia Weir, and Suneet Amrute for their support and patience throughout the making of this book. They have trusted me and listened to my concerns in a way that I can only be grateful for.
I also want to acknowledge the support I received from folks at the Viberavetions project especially M. David Peterson who has become a close friend, without forgetting Uche Ogbuji, Russ Miles and Kurt Cagle who have all shared their views at times when I needed them.
I heartily want to thank all my friends who have always respected my passion for being part of open-source projects and communities while reminding me that there is more to life than lines of code. They have been a breath of fresh air to me throughout these years and a great comfort when times weren't good: one person particularly who has taken a great place in my life and who has always pushed me ahead.
Lastly I want to deeply thank my beloved family for always being discreetly there for me and supporting my decisions even when they did not look like they were in my best interests. You have never failed me and the work I have put into this book is a way for me to thank you for that. Merci vous.
This book is for the CherryPy community and beyond.
About the Reviewers
Rmi Delon is a French software developer and entrepreneur living in London, UK. He has been developing software for over 10 years and contributing to the open-source community for over five years. He is the original creator of CherryPy and is now running WebFaction, a fast growing hosting service specialized in agile tools, including CherryPy and TurboGears.
Robert Brewer is the System Architect for Amor Ministries, a non-profit house-building ministry that serves the poors of Mexico.
He is the lead developer of the CherryPy project, and wrote most of version 3.0. He is also the author of the modpython gateway for WSGI, and is the creator of Dejavu, a pure-Python Object-Relational Mapper.
Note
Founded in 2003 by the original CherryPy creator, WebFaction is a reliable and affordable hosting provider for your CherryPy applications.
You can get an exclusive 20% discount by using the promo code "CHERRYPYBOOK" when you sign up with WebFaction, visit http://www.webfaction.com for more details.
Preface
Over the last few years, the boom that the World has experienced with the Internet breakthrough has pushed almost every programming language or platform to welcome the rise of web development toolkits, libraries, and frameworks.
The Python programming language has grown a rather large list of these environments though apart from a few of them such as Zope and Twisted most have a fairly small community. It is in this context that CherryPy came into existence when Rmi Delon, its creator, decided that he needed a tool that would work as he wanted for his own personal projects. He then released CherryPy under a free software license so that anyone could use, distribute, and contribute to the project.
CherryPy is a Python library implementing the HTTP protocol, which is at the very core of the Web, using common Python idioms. On top of that CherryPy offers its own view and concepts on how to help a developer to build web applications while being minimally intrusive through its own simple and straightforward API.
This book will guide you through the CherryPy library with the aim of giving you the key to make the best of it in your own web applications.
The first four chapters are dedicated to CherryPy, providing information ranging from its history to an in-depth presentation of its key features. The rest of the book will then take you into the development of a photoblog application. Each chapter tries to provide enough background to allow you to ponder the why and how of each decision made. Indeed writing software applications is not a precise science and compromises need to be undertaken for the better, however, the truth is that writing software usually does not go quite as planned. I have written this book with the hope that in the end you would have learnt much more than using a Python library.
Next page