Paul Everitt
2013-09-13 b1b92284f496800a4dfd2cea72cb9be07ba8661c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
=============================================
Prelude: Quick Project Startup with Scaffolds
=============================================
 
To ease the process of getting started, Pyramid provides *scaffolds*
that generate sample projects from templates in Pyramid and Pyramid
add-ons.
 
Background
==========
 
We're going to cover a lot in this tutorial, focusing on one topic at a
time and writing everything from scratch. As a warmup, though,
it sure would be nice to see some pixels on a screen.
 
Like other web development frameworks, Pyramid provides a number of
"scaffolds" that generate working Python, template, and CSS code for
sample applications. In this step we'll use a built-in scaffold to let
us preview a Pyramid application, before starting from scratch on Step 1.
 
Objectives
==========
 
- Use Pyramid's ``pcreate`` command to list scaffolds and make a new
  project
 
- Start up a Pyramid application and visit it in a web browser
 
Steps
=====
 
#. Pyramid's ``pcreate`` command can list the available scaffolds:
 
    .. code-block:: bash
 
        (env27)$ pcreate --list
        Available scaffolds:
          alchemy:                 Pyramid SQLAlchemy project using url dispatch
          starter:                 Pyramid starter project
          zodb:                    Pyramid ZODB project using traversal
 
#. Tell ``pcreate`` to use the ``starter`` scaffold to make our project:
 
    .. code-block:: bash
 
        (env27)$ pcreate --scaffold starter scaffolds
 
#. Use normal Python development to setup our project for development:
 
    .. code-block:: bash
 
        (env27)$ cd scaffolds
        (env27)$ python setup.py develop
 
#. Startup the application by pointing Pyramid's ``pserve`` command at
   the project's (generated) configuration file:
 
    .. code-block:: bash
 
        (env27)$ pserve development.ini --reload
 
   On startup, ``pserve`` logs some output:
 
   .. code-block:: bash
 
     Starting subprocess with file monitor
     Starting server in PID 72213.
     Starting HTTP server on http://0.0.0.0:6543
 
#. Open ``http://localhost:6543/`` in your browser.
 
Analysis
========
 
Rather than starting from scratch, ``pcreate`` can make getting a
Python project containing a Pyramid application a quick matter.
Pyramid ships with a few scaffolds. But installing a Pyramid add-on can
give you new scaffolds from that add-on.
 
``pserve`` is Pyramid's application runner, separating operational
details from your code. When you install Pyramid, a small command
program called ``pserve`` is written to your ``bin`` directory. This
program is an executable Python module. It is passed a configuration
file (in this case, ``development.ini``.)