The Pyramid Web Application Development Framework Version 1.1.3

The Pyramid Web Application Development Framework Version 1.1.3

The Pyramid Web Application Development Framework Version 1.1.3 Chris McDonough Contents Front Matteri Copyright, Trademarks, and Attributions iii Typographical Conventionsv Author Introduction vii I Narrative Documentation1 1 Pyramid Introduction3 2 Installing Pyramid7 3 Application Configuration 15 4 Creating Your First Pyramid Application 19 5 Creating a Pyramid Project 25 6 URL Dispatch 47 7 Views 67 8 Renderers 77 9 Templates 91 10 View Configuration 105 11 Static Assets 119 12 Request and Response Objects 129 13 Sessions 137 14 Using Events 145 15 Environment Variables and .ini File Settings 149 16 Command-Line Pyramid 159 17 Internationalization and Localization 169 18 Virtual Hosting 187 19 Unit, Integration, and Functional Testing 191 20 Resources 199 21 Much Ado About Traversal 211 22 Traversal 219 23 Security 231 24 Combining Traversal and URL Dispatch 243 25 Using Hooks 253 26 Advanced Configuration 269 27 Extending An Existing Pyramid Application 279 28 Startup 285 29 Thread Locals 291 30 Using the Zope Component Architecture in Pyramid 295 II Tutorials 301 31 ZODB + Traversal Wiki Tutorial 303 32 SQLAlchemy + URL Dispatch Wiki Tutorial 349 33 Converting a repoze.bfg Application to Pyramid 399 34 Running Pyramid on Google’s App Engine 403 35 Running a Pyramid Application under mod_wsgi 409 III API Reference 413 36 pyramid.authorization 415 37 pyramid.authentication 417 38 pyramid.chameleon_text 419 39 pyramid.chameleon_zpt 421 40 pyramid.config 423 41 pyramid.events 425 42 pyramid.exceptions 427 43 pyramid.httpexceptions 429 44 pyramid.i18n 431 45 pyramid.interfaces 433 46 pyramid.location 435 47 pyramid.paster 437 48 pyramid.registry 439 49 pyramid.renderers 441 50 pyramid.request 443 51 pyramid.response 445 52 pyramid.scripting 447 53 pyramid.security 449 54 pyramid.settings 451 55 pyramid.testing 453 56 pyramid.threadlocal 455 57 pyramid.traversal 457 58 pyramid.url 459 59 pyramid.view 461 60 pyramid.wsgi 463 IV Glossary and Index 465 Glossary 467 Front Matter Copyright, Trademarks, and Attributions The Pyramid Web Application Development Framework, Version 1.1 by Chris McDonough Copyright © 2008-2011, Agendaless Consulting. ISBN-10: 0615445675 ISBN-13: 978-0615445670 First print publishing: February, 2011 All rights reserved. This material may be copied or distributed only subject to the terms and conditions set forth in the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. You must give the original author credit. You may not use this work for commercial purposes. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. While the Pyramid documentation is offered under the Creative Commons Attribution- Nonconmmercial-Share Alike 3.0 United States License, the Pyramid software is offered under a less restrictive (BSD-like) license. All terms mentioned in this book that are known to be trademarks or service marks have been appropri- ately capitalized. However, use of a term in this book should not be regarded as affecting the validity of any trademark or service mark. Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information provided is on as “as-is” basis. The author and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book. No patent liability is assumed with respect to the use of the information contained herein. iii Attributions Editor: Casey Duncan Contributors: Ben Bangert, Blaise Laflamme, Rob Miller, Mike Orr, Carlos de la Guardia, Paul Everitt, Tres Seaver, John Shipman, Marius Gedminas, Chris Rossi, Joachim Krebs, Xavier Spriet, Reed O’Brien, William Chambers, Charlie Choiniere, Jamaludin Ahmad, Graham Higgins, Patricio Paez, Michael Merickel, Eric Ongerth, Niall O’Higgins, Christoph Zwerschke, John Anderson, Atsushi Odagiri, Kirk Strauser, JD Navarro, Joe Dallago, Savoir-Faire Linux, Łukasz Fidosz, Christopher Lambacher, Claus Conrad, Chris Beelby, and a number of people with only psuedonyms on GitHub. Cover Designer: Hugues Laflamme of Kemeneur. Used with permission: The Request and Response Objects chapter is adapted, with permission, from documentation originally written by Ian Bicking. The Much Ado About Traversal chapter is adapted, with permission, from an article written by Rob Miller. Print Production The print version of this book was produced using the Sphinx documentation generation system and the LaTeX typesetting system. Contacting The Publisher Please send documentation licensing inquiries, translation inquiries, and other business communications to Agendaless Consulting. Please send software and other technical queries to the Pylons-devel maillist. HTML Version and Source Code An HTML version of this book is freely available via http://docs.pylonsproject.org The source code for the examples used in this book are available within the Pyramid software distribution, always available via https://github.com/Pylons/pyramid iv Typographical Conventions Literals, filenames and function arguments are presented using the following style: argument1 Warnings, which represent limitations and need-to-know information related to a topic or concept are presented in the following style: This is a warning. Notes, which represent additional information related to a topic or concept are presented in the following style: This is a note. We present Python method names using the following style: pyramid.config.Configurator.add_view() We present Python class names, module names, attributes and global variables using the following style: pyramid.config.Configurator.registry References to glossary terms are presented using the following style: Pylons URLs are presented using the following style: Pylons References to sections and chapters are presented using the following style: Traversal Code and configuration file blocks are presented in the following style: v 1 def foo(abc): 2 pass When a command that should be typed on one line is too long to fit on a page, the backslash \ is used to indicate that the following printed line should actually be part of the command: c:\bigfntut\tutorial> ..\Scripts\nosetests --cover-package=tutorial \ --cover-erase --with-coverage A sidebar, which presents a concept tangentially related to content discussed on a page, is rendered like so: This is a sidebar Sidebar information. vi Author Introduction Welcome to “The Pyramid Web Application Framework”. In this introduction, I’ll describe the audience for this book, I’ll describe the book content, I’ll provide some context regarding the genesis of Pyramid, and I’ll thank some important people. I hope you enjoy both this book and the software it documents. I’ve had a blast writing both. Audience This book is aimed primarily at a reader that has the following attributes: • At least a moderate amount of Python experience. • A familiarity with web protocols such as HTTP and CGI. If you fit into both of these categories, you’re in the direct target audience for this book. But don’t worry, even if you have no experience with Python or the web, both are easy to pick up “on the fly”. Python is an excellent language in which to write applications; becoming productive in Python is almost mind-blowingly easy. If you already have experience in another language such as Java, Visual Basic, Perl, Ruby, or even C/C++, learning Python will be a snap; it should take you no longer than a couple of days to become modestly productive. If you don’t have previous programming experience, it will be slightly harder, and it will take a little longer, but you’d be hard-pressed to find a better “first language.” Web technology familiarity is assumed in various places within the book. For example, the book doesn’t try to define common web-related concepts like “URL” or “query string.” Likewise, the book describes various interactions in terms of the HTTP protocol, but it does not describe how the HTTP protocol works in detail. Like any good web framework, though, Pyramid shields you from needing to know most of the gory details of web protocols and low-level data structures. As a result, you can usually avoid becoming “blocked” while you read this book even if you don’t yet deeply understand web technologies. vii Book Content This book is divided into three major parts: Narrative Documentation This is documentation which describes Pyramid concepts in narrative form, written in a largely conversational tone. Each narrative documentation chapter describes an isolated Pyra- mid concept. You should be able to get useful information out of the narrative chapters if you read them out-of-order, or when you need only a reminder about a particular topic while you’re developing an application. Tutorials Each tutorial builds a sample application or implements a set of concepts with a sample; it then describes the application or concepts in terms of the sample. You should read the tutorials if you want a guided tour of Pyramid. API Reference Comprehensive reference material for every public API exposed by Pyramid. The API doc- umentation is organized alphabetically by module name. The Genesis of repoze.bfg Before the end of 2010, Pyramid was known as repoze.bfg. I wrote repoze.bfg after many years of writing applications using Zope. Zope provided me with a lot of mileage: it wasn’t until almost a decade of successfully creating applications using it that I decided to write a different web framework. Although repoze.bfg takes inspiration from a variety of web frameworks, it owes more of its core design to Zope than any other. The Repoze “brand” existed before repoze.bfg was created. One of the first packages developed as part of the Repoze brand was a package named repoze.zope2. This was a package that allowed Zope 2 applications to run under a WSGI server without modification.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    504 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us