Step 01: Hello World in Pyramid¶
What’s the simplest way to get started in Pyramid? A single-file module.
No packages, imports,
setup.py, or other machinery.
- Get Pyramid pixels on the screen as easily as possible
- Use that as a well-understood base for adding each unit of complexity
- Create a module with a view that acts as an HTTP server
- Visit the URL in your browser
Microframeworks are all the rage these days. They provide low-overhead on execution. But also, they have a low mental overhead: they do so little, the only things you have to worry about are your things.
Pyramid is special because it can act as a single-file module microframework. You have a single Python file that can be executed directly by Python. But Pyramid also scales to the largest of applications.
Make sure you have followed the steps in Tutorial Setup.
$ mkdir creatingux; cd creatingux
$ mkdir step01; cd step01
Copy the following into
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response # This acts as the view function def hello_world(request): return Response('hello!') def main(): # Grab the config, add a view, and make a WSGI app config = Configurator() config.add_view(hello_world) app = config.make_wsgi_app() return app if __name__ == '__main__': # When run from command line, launch a WSGI server and app app = main() server = make_server('0.0.0.0', 8080, app) server.serve_forever()
$ python application.py
Open http://127.0.0.1:8080 in your browser.
- What happens if you return a string of HTML? A sequence of integers?
- Put something invalid, such as
print xyz, in the view function. Kill your
python application.pyand restart, then reload your browser. See the exception in the console?
- Does Pyramid support automatic reloading of Python code?
This single-file module does quite a bit for so few lines, thus making it spiritually similar to microframeworks. A view function is added to the configuration. When called, the view returns a response.
- Background on megaframeworks, microframeworks, and Pyramid’s opinion thereof