Differences between revisions 1 and 2
Revision 1 as of 2003-07-01 20:11:44
Size: 2219
Editor: inktomi4-lee
Comment:
Revision 2 as of 2003-07-01 20:18:04
Size: 2359
Editor: inktomi4-lee
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
This is the ''classic'' hello world application. It does nothing but display a single HTML page. 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 ==

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

import albatross
from albatross import cgiapp
                                                                                
class HelloWorld(albatross.SimpleApp):
    def __init__(self):
        albatross.SimpleApp.__init__(
                self,
                base_url = '/',
                template_path = '.',
                start_page = StartPage.name,
                secret = 'secret')
        self.register_page(StartPage.name, StartPage())
                                                                                
class StartPage:
    name = 'start'
    def page_display(self, ctx):
        ctx.run_template('startpage.html')
                                                                                
if __name__ == '__main__':
    app = HelloWorld()
    app.run(cgiapp.Request())

startpage.html

<html>
  <head>
    <title>Hello World</title>
  </head>
  <body>
    <p>Hello World.</p>
  </body>
</html>

None: HelloWorld (last edited 2011-02-15 06:05:17 by localhost)