Hello World
An Albatross version of the classic (ahem) hello world application.
Purpose
To demonstrate:
- a very basic application
- registration of page classes
- sending a HTML template file to the client
Overview
The HelloWorld class simply initialises its base class, Albatross's prepackaged SimpleApp, and then registers the only page in the application, StartPage. The parameters passed to the SimpleApp constructor are:
base_url - the path on the web server where the application is hosted. base_url is only used to generate links to other pages and so is largely irrelevant in this example.
template_path - the directory containing the application's template files
start_page - the page to display by default
secret - an application-specific value used to ensure the integrity of session data that is sent to the browser
StartPage contains only one method, page_display, that tells Albatross to render the template file startpage.html.
Although it is not essential in this application (since there is only one page) it is customary for each page class to contain a class variable called name which uniquely identifes the page. The page's name is used in links.
Source Code
helloworld.py
1 import albatross
2 from albatross import cgiapp
3
4 class HelloWorld(albatross.SimpleApp):
5 def __init__(self):
6 albatross.SimpleApp.__init__(
7 self,
8 base_url = '/',
9 template_path = '.',
10 start_page = StartPage.name,
11 secret = 'secret')
12 self.register_page(StartPage.name, StartPage())
13
14 class StartPage:
15 name = 'start'
16 def page_display(self, ctx):
17 ctx.run_template('startpage.html')
18
19 if __name__ == '__main__':
20 app = HelloWorld()
21 app.run(cgiapp.Request())
startpage.html
<html> <head> <title>Hello World</title> </head> <body> <p>Hello World.</p> </body> </html>