Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 185 lines (149 sloc) 7.157 kb
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
1 =====================
2 Author Introduction
3 =====================
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
4
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
5 Welcome to "The :app:`Pyramid` Web Application Framework". In this
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
6 introduction, I'll describe the audience for this book, I'll describe
7 the book content, I'll provide some context regarding the genesis of
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
8 :app:`Pyramid`, and I'll thank some important people.
393a318 Audience and cleanup.
Chris McDonough authored
9
10 I hope you enjoy both this book and the software it documents. I've
11 had a blast writing both.
12
c5f24b2 Prep for b1
Chris McDonough authored
13 .. index::
14 single: book audience
15
393a318 Audience and cleanup.
Chris McDonough authored
16 Audience
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
17 ========
393a318 Audience and cleanup.
Chris McDonough authored
18
19 This book is aimed primarily at a reader that has the following
20 attributes:
21
22 - At least a moderate amount of :term:`Python` experience.
23
24 - A familiarity with web protocols such as HTTP and CGI.
25
26 If you fit into both of these categories, you're in the direct target
27 audience for this book. But don't worry, even if you have no
28 experience with Python or the web, both are easy to pick up "on the
29 fly".
30
31 Python is an *excellent* language in which to write applications;
32 becoming productive in Python is almost mind-blowingly easy. If you
33 already have experience in another language such as Java, Visual
34 Basic, Perl, Ruby, or even C/C++, learning Python will be a snap; it
35 should take you no longer than a couple of days to become modestly
36 productive. If you don't have previous programming experience, it
37 will be slightly harder, and it will take a little longer, but you'd
38 be hard-pressed to find a better "first language."
39
40 Web technology familiarity is assumed in various places within the
223d4c0 More pass overhaul based on making contextfinding explicit within doc…
Chris McDonough authored
41 book. For example, the book doesn't try to define common web-related
42 concepts like "URL" or "query string." Likewise, the book describes
43 various interactions in terms of the HTTP protocol, but it does not
44 describe how the HTTP protocol works in detail. Like any good web
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
45 framework, though, :app:`Pyramid` shields you from needing to know
223d4c0 More pass overhaul based on making contextfinding explicit within doc…
Chris McDonough authored
46 most of the gory details of web protocols and low-level data
47 structures. As a result, you can usually avoid becoming "blocked"
48 while you read this book even if you don't yet deeply understand web
49 technologies.
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
50
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
51 .. index::
52 single: book content overview
53
54 Book Content
55 ============
56
b428311 @mcdonc four->three
mcdonc authored
57 This book is divided into three major parts:
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
58
38b33d4 Final layout.
Chris McDonough authored
59 :ref:`narrative_documentation`
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
60
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
61 This is documentation which describes :app:`Pyramid` concepts in
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
62 narrative form, written in a largely conversational tone. Each
63 narrative documentation chapter describes an isolated
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
64 :app:`Pyramid` concept. You should be able to get useful
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
65 information out of the narrative chapters if you read them
66 out-of-order, or when you need only a reminder about a particular
67 topic while you're developing an application.
68
38b33d4 Final layout.
Chris McDonough authored
69 :ref:`tutorials`
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
70
bd73fc6 Using a single chapter for the API docs and a single chapter for the …
Chris McDonough authored
71 Each tutorial builds a sample application or implements a set of
72 concepts with a sample; it then describes the application or
73 concepts in terms of the sample. You should read the tutorials if
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
74 you want a guided tour of :app:`Pyramid`.
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
75
38b33d4 Final layout.
Chris McDonough authored
76 :ref:`api_reference`
ee79c5d Style.
Chris McDonough authored
77
38b33d4 Final layout.
Chris McDonough authored
78 Comprehensive reference material for every public API exposed by
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
79 :app:`Pyramid`. The API documentation is organized
38b33d4 Final layout.
Chris McDonough authored
80 alphabetically by module name.
81
3ea7c72 Commit from paper.
Chris McDonough authored
82 .. index::
83 single: repoze.zope2
84 single: Zope 3
85 single: Zope 2
c5f24b2 Prep for b1
Chris McDonough authored
86 single: repoze.bfg genesis
edd9157 @mcdonc convert remainder of docs to use pyramid instead of repoze.bfg
mcdonc authored
87 single: pyramid genesis
3ea7c72 Commit from paper.
Chris McDonough authored
88
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
89 The Genesis of :mod:`repoze.bfg`
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
90 ================================
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
91
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
92 Before the end of 2010, :app:`Pyramid` was known as :mod:`repoze.bfg`.
edd9157 @mcdonc convert remainder of docs to use pyramid instead of repoze.bfg
mcdonc authored
93
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
94 I wrote :mod:`repoze.bfg` after many years of writing applications
95 using :term:`Zope`. Zope provided me with a lot of mileage: it wasn't
1de5ec9 Spellcheck.
Chris McDonough authored
96 until almost a decade of successfully creating applications using it
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
97 that I decided to write a different web framework. Although
98 :mod:`repoze.bfg` takes inspiration from a variety of web frameworks,
393a318 Audience and cleanup.
Chris McDonough authored
99 it owes more of its core design to Zope than any other.
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
100
3ea7c72 Commit from paper.
Chris McDonough authored
101 The Repoze "brand" existed before :mod:`repoze.bfg` was created. One
102 of the first packages developed as part of the Repoze brand was a
103 package named :mod:`repoze.zope2`. This was a package that allowed
104 Zope 2 applications to run under a :term:`WSGI` server without
105 modification. Zope 2 did not have reasonable WSGI support at the
106 time.
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
107
108 During the development of the :mod:`repoze.zope2` package, I found
109 that replicating the Zope 2 "publisher" -- the machinery that maps
110 URLs to code -- was time-consuming and fiddly. Zope 2 had evolved
111 over many years, and emulating all of its edge cases was extremely
112 difficult. I finished the :mod:`repoze.zope2` package, and it
113 emulates the normal Zope 2 publisher pretty well. But during its
114 development, it became clear that Zope 2 had simply begun to exceed my
115 tolerance for complexity, and I began to look around for simpler
116 options.
117
f5106b6 Caught by Steve Schmechel.
Chris McDonough authored
118 I considered using the Zope 3 application server machinery, but it
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
119 turned out that it had become more indirect than the Zope 2 machinery
120 it aimed to replace, which didn't fulfill the goal of simplification.
121 I also considered using Django and Pylons, but neither of those
122 frameworks offer much along the axes of traversal, contextual
123 declarative security, or application extensibility; these were
124 features I had become accustomed to as a Zope developer.
125
3ea7c72 Commit from paper.
Chris McDonough authored
126 I decided that in the long term, creating a simpler framework that
127 retained features I had become accustomed to when developing Zope
128 applications was a more reasonable idea than continuing to use any
129 Zope publisher or living with the limitations and unfamiliarities of a
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
130 different framework. The result is what is now :app:`Pyramid`.
edd9157 @mcdonc convert remainder of docs to use pyramid instead of repoze.bfg
mcdonc authored
131
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
132 The Genesis of :app:`Pyramid`
edd9157 @mcdonc convert remainder of docs to use pyramid instead of repoze.bfg
mcdonc authored
133 =============================
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
134
fd5ae92 @mcdonc - All references to Pyramid-the-application were changed from :mod:`p…
mcdonc authored
135 What was :mod:`repoze.bfg` has become :app:`Pyramid` as the result of
edd9157 @mcdonc convert remainder of docs to use pyramid instead of repoze.bfg
mcdonc authored
136 a coalition built between the :term:`Repoze` and :term:`Pylons`
137 community throughout the year 2010. By merging technology, we're able
138 to reduce duplication of effort, and take advantage of more of each
139 others' technology.
393a318 Audience and cleanup.
Chris McDonough authored
140
c5f24b2 Prep for b1
Chris McDonough authored
141 .. index::
142 single: Bicking, Ian
143 single: Everitt, Paul
144 single: Seaver, Tres
145 single: Sawyers, Andrew
146 single: Borch, Malthe
147 single: de la Guardia, Carlos
148 single: Brandl, Georg
149 single: Oram, Simon
150 single: Hardwick, Nat
151 single: Fulton, Jim
152 single: Moroz, Tom
153 single: Koym, Todd
154 single: van Rossum, Guido
155 single: Peters, Tim
37bcb77 Bug Fixes
Chris McDonough authored
156 single: Rossi, Chris
2c0f82d Include Shane and Daniel.
Chris McDonough authored
157 single: Holth, Daniel
158 single: Hathaway, Shane
394c7b2 Index.
Chris McDonough authored
159 single: Akkerman, Wichert
dade3bb @mcdonc add more thanks
mcdonc authored
160 single: Laflamme, Blaise
161 single: Bangert, Ben
162 single: Duncan, Casey
163 single: Orr, Mike
c5f24b2 Prep for b1
Chris McDonough authored
164
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
165 Thanks
04bee54 Reduce overall book size by not giving each ZCML directive its own ch…
Chris McDonough authored
166 ======
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
167
e4ed8fd Section header fixes.
Chris McDonough authored
168 This book is dedicated to my grandmother, who gave me my first
169 typewriter (a Royal), and my mother, who bought me my first computer
170 (a VIC-20).
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
171
172 Thanks to the following people for providing expertise, resources, and
173 software. Without the help of these folks, neither this book nor the
dade3bb @mcdonc add more thanks
mcdonc authored
174 software which it details would exist: Paul Everitt, Tres Seaver, Andrew
175 Sawyers, Malthe Borch, Carlos de la Guardia, Chris Rossi, Shane Hathaway,
176 Daniel Holth, Wichert Akkerman, Georg Brandl, Blaise Laflamme, Ben Bangert,
177 Casey Duncan, Mike Orr, Simon Oram and Nat Hardwick of Electrosoup, Ian
178 Bicking of the Open Planning Project, Jim Fulton of Zope Corporation, Tom
179 Moroz of the Open Society Institute, and Todd Koym of Environmental Health
180 Sciences.
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
181
c81116e Meh.
Chris McDonough authored
182 Thanks to Guido van Rossum and Tim Peters for Python.
9ec2d64 Merge of andrew-docs branch.
Chris McDonough authored
183
c81116e Meh.
Chris McDonough authored
184 Special thanks to Tricia for putting up with me.
Something went wrong with that request. Please try again.