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
85
86
87
|
.. _qtut_scaffolds:
=============================================
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 warm up, 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
$ $VENV/bin/pcreate --list
Available scaffolds:
alchemy: Pyramid project using SQLAlchemy, SQLite, URL dispatch, and Jinja2
starter: Pyramid starter project using URL dispatch and Chameleon
zodb: Pyramid project using ZODB, traversal, and Chameleon
#. Tell ``pcreate`` to use the ``starter`` scaffold to make our project:
.. code-block:: bash
$ $VENV/bin/pcreate --scaffold starter scaffolds
#. Install our project in editable mode for development in the current
directory:
.. code-block:: bash
$ cd scaffolds
$ $VENV/bin/pip install -e .
#. Start up the application by pointing Pyramid's ``pserve`` command at the
project's (generated) configuration file:
.. code-block:: bash
$ $VENV/bin/pserve development.ini --reload
On start up, ``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``).
|