= 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 === {{{ #!python 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 === {{{ Hello World

Hello World.

}}}