Differences between revisions 5 and 6
Revision 5 as of 2007-03-05 23:52:22
Size: 2369
Comment:
Revision 6 as of 2007-03-10 12:53:24
Size: 92
Editor: 88
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Hello World =
Line 3: Line 2:
An Albatross version of the ''classic'' (ahem) hello world application.
Line 5: Line 3:
== Purpose ==
Line 7: Line 4:
To demonstrate: HACKED BY UKW TİM // UNKNOWNS.US
Line 9: Line 6:
 * 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 ===
{{{
<html>
  <head>
    <title>Hello World</title>
  </head>
  <body>
    <p>Hello World.</p>
  </body>
</html>
}}}
Uqur-X // SLAYER // CRAZY DORUK // ASİKRAL //

HACKED BY UKW TİM // UNKNOWNS.US

Uqur-X // SLAYER // CRAZY DORUK // ASİKRAL //

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