1from pyramid.view import (
2    view_config,
3    view_defaults
4    )
5
6
7@view_defaults(route_name='hello')
8class TutorialViews(object):
9    def __init__(self, request):
10        self.request = request
11        self.view_name = 'TutorialViews'
12
13    @property
14    def full_name(self):
15        first = self.request.matchdict['first']
16        last = self.request.matchdict['last']
17        return first + ' ' + last
18
19    @view_config(route_name='home', renderer='home.pt')
20    def home(self):
21        return {'page_title': 'Home View'}
22
23    # Retrieving /howdy/first/last the first time
24    @view_config(renderer='hello.pt')
25    def hello(self):
26        return {'page_title': 'Hello View'}
27
28    # Posting to /howdy/first/last via the "Edit" submit button
29    @view_config(request_method='POST', renderer='edit.pt')
30    def edit(self):
31        new_name = self.request.params['new_name']
32        return {'page_title': 'Edit View', 'new_name': new_name}
33
34    # Posting to /howdy/first/last via the "Delete" submit button
35    @view_config(request_method='POST', request_param='form.delete',
36                 renderer='delete.pt')
37    def delete(self):
38        print ('Deleted')
39        return {'page_title': 'Delete View'}
40