- Python Pyramid Tutorial
- Python Pyramid - Home
- Python Pyramid - Overview
- Pyramid - Environment Setup
- Python Pyramid - Hello World
- Pyramid - Application Configuration
- Python Pyramid - Url Routing
- Python Pyramid - View Configuration
- Python Pyramid - Route Prefix
- Python Pyramid - Templates
- Pyramid - HTML Form Template
- Python Pyramid - Static Assets
- Python Pyramid - Request Object
- Python Pyramid - Response Object
- Python Pyramid - Sessions
- Python Pyramid - Events
- Python Pyramid - Message Flashing
- Pyramid - Using SQLAlchemy
- Python Pyramid - Cookiecutter
- Python Pyramid - Creating A Project
- Python Pyramid - Project Structure
- Python Pyramid - Package Structure
- Creating A Project Manually
- Command Line Pyramid
- Python Pyramid - Testing
- Python Pyramid - Logging
- Python Pyramid - Security
- Python Pyramid - Deployment
- Python Pyramid Useful Resources
- Python Pyramid - Quick Guide
- Python Pyramid - Useful Resources
- Python Pyramid - Discussion
Python Pyramid - Hello World
Example
To check whether Pyramid along with its dependencies are properly installed, enter the following code and save it as hello.py, using any Python-aware editor.
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response def hello_world(request): return Response('Hello World!') if __name__ == '__main__': with Configurator() as config: config.add_route('hello', '/') config.add_view(hello_world, route_name='hello') app = config.make_wsgi_app() server = make_server('0.0.0.0', 6543, app) server.serve_forever()
The Configurator object is required to define the URL route and bind a view function to it. The WSGI application object is obtained from this config object is an argument to the make_server() function along with the IP address and port of localhost. The server object enters a listening loop when serve_forever() method is called.
Run this program from the command terminal as.
Python hello.py
Output
The WSGI server starts running. Open the browser and enter http://loccalhost:6543/ in the address bar. When the request is accepted, the hello_world() view function gets executed. It returns the Hello world message. The Hello world message will be seen in the browser window.
As mentioned earlier, the development server created by make_server() function in the wsgiref module is not suited for production environment. Instead, we shall use Waitress server. Modify the hello.py as per the following code −
from pyramid.config import Configurator from pyramid.response import Response from waitress import serve def hello_world(request): return Response('Hello World!') if __name__ == '__main__': with Configurator() as config: config.add_route('hello', '/') config.add_view(hello_world, route_name='hello') app = config.make_wsgi_app() serve(app, host='0.0.0.0', port=6543)
All other functionality is same, except we use serve() function of waitress module to start the WSGI server. On visiting the '/' route in the browser after running the program, the Hello world message is displayed as before.
Instead of a function, a callable class can also be used as a view. A callable class is the one which overrides the __call__() method.
from pyramid.response import Response class MyView(object): def __init__(self, request): self.request = request def __call__(self): return Response('hello world')