Create flexible, agile web applications using the power of Grok--a Python web framework
- Develop efficient and powerful web applications and web sites from start to finish using Grok, which is based on Zope 3
- Integrate your applications or web sites with relational databases easily
- Extend your applications using the power of the Zope Toolkit
- Easy-to-follow and packed with practical, working code with clear explanations
In Detail
Python is a very popular language for web application development. It's easy to learn and powerful enough to program any kind of system. There are many options for Python web development frameworks, from lightweight packages to everything-and-the-kitchen sink solutions. However, Grok offers a solid foundation for developing powerful, extensible, and secure web applications without too much complexity. This is because it is based on a very advanced object-oriented web framework: Zope 3. Grok enables web developers to tap into the power of Zope 3, thus giving a range of useful features for our applications with very little code.
This book offers Python developers a comprehensive understanding of Grok and a look at its main features by way of developing and evolving a sample application from concept to deployment. You will learn how to use Grok to create web applications and how Grok offers you an agile and enjoyable development experience.
This book will introduce you to the Grok web development framework and show you how to create an application from start to finish. You will learn how to create an application using mostly page templates and then add features to it while reworking the code as it grows. You will learn how to use models to describe your application's domain and how to connect those models to views for presenting information to your users. You will also learn how to automatically generate forms from the models and how to store the data and make it searchable. Due to the public nature of the Web, security is an important part of any web application and you will learn how Grok's integrated security can be used to protect your application and grant access to specific users and roles when needed. Grok offers a powerful object database for storage, but can also interact nicely with any database directly or using an object-relational mapper. You will learn how to do both and when it's advisable to use each. You will also learn how to extend a third-party Grok application, how to debug it, and how to deploy it. By the end of the book, you will be able to design and develop a complete web application using Grok.
What you will learn from this book
- Basic concepts of the Zope Component Architecture
- Use Zope Page Templates to produce HTML pages
- Design efficient applications using models and views
- Use Grok's automatic form generation mechanisms
- Add selectable themes or skins to your applications
- Index content from the models you defined and learn how to search this content by querying the catalog, including full text search
- Understand how the Zope Object Database works and how simple and useful it is
- Easily connect to other relational databases using SQLAlchemy
- Create extensions to your applications
- Understand the various options to deploy your Grok application, and use buildout--a Python-based build system for deploying applications--to create a repeatable deployment
Approach
The book takes a practical approach and dives into code right from the start. After learning how to install Grok, we create a simple application. We work on this application throughout the book, until its deployment in the last chapter.
In each chapter, some new features of Grok will be introduced and explained, then the application will be extended to use them, explaining step-by-step how each feature works.
Who this book is written for
This book is intended for Python developers who want to create web applications but have little or no experience in web development. If you have used other web frameworks but are looking for one that enables you to create more complex applications without losing agility, you will also benefit from this book.
The reader is expected to have some basic Python knowledge and at least a general idea of how a web application works.