8.2 The AppContext Base Class
All execution contexts used by Albatross application classes are
derived from the AppContext class. The class acts as a proxy
and redirects all ResourceMixin and TemplateLoader
class methods to the application object. This allows the application
to cache resources so that they do not need to be defined for every
request.
The class places very few assumptions about how you wish to structure
and deploy your application and is suitable as a base class for all
application execution context classes.
Figure:
The AppContext class
|
The methods available in AppContext and the location of their
definition are show below.
Method |
Mixin |
absolute_base_url() |
AppContext |
add_header(name, value) |
ResponseMixin |
base_url() |
AppContext |
clear_locals() |
AppContext |
current_url() |
AppContext |
del_header(name) |
ResponseMixin |
eval_expr(expr) |
NamespaceMixin |
flush_content() |
ExecuteMixin |
flush_html() |
ExecuteMixin |
get_header(name) |
ResponseMixin |
get_lookup(name) |
AppContext |
get_macro(name) |
AppContext |
get_macro_arg(name) |
ExecuteMixin |
get_tagclass(name) |
AppContext |
get_value(name) |
NamespaceMixin |
has_value(name) |
NamespaceMixin |
has_values(*names) |
NamespaceMixin |
load_template(name) |
AppContext |
load_template_once(name) |
AppContext |
make_alias(name) |
NamespaceMixin |
parsed_request_uri() |
AppContext |
pop_content_trap() |
ExecuteMixin |
pop_macro_args() |
ExecuteMixin |
pop_page(target_page) |
AppContext |
push_content_trap() |
ExecuteMixin |
push_macro_args(args) |
ExecuteMixin |
push_page(name, *args) |
AppContext |
redirect(loc) |
AppContext |
redirect_url(loc) |
AppContext |
register_lookup(name, lookup) |
AppContext |
register_macro(name, macro) |
AppContext |
req_equals(name) |
AppContext |
reset_content() |
ExecuteMixin |
run_template(name) |
AppContext |
run_template_once(name) |
AppContext |
send_content(data) |
ResponseMixin |
send_redirect(loc) |
ResponseMixin |
set_globals(dict) |
NamespaceMixin |
set_header(name, value) |
ResponseMixin |
set_page(name, *args) |
AppContext |
set_request(req) |
AppContext |
set_value(name, value) |
NamespaceMixin |
write_content(data) |
ExecuteMixin |
write_headers() |
ResponseMixin |
There are a number of new methods and attributes introduced by the
class.
-
When you inherit from the AppContext class you must call
this constructor.
The app argument specifies the application object. This is
saved in the app member.
- app
-
Stores the app argument to the constructor.
-
Returns the result of the get_macro() method of the
application in the app member.
register_macro( |
name, macro) |
-
Returns the result of the register_macro() method of the
application in the app member.
-
Returns the result of the get_lookup() method of the
application in the app member.
register_lookup( |
name, lookup) |
-
Returns the result of the register_lookup() method of the
application in the app member.
-
Returns the result of the get_tagclass() method of the
application in the app member.
-
Returns the result of the load_template() method of the
application in the app member.
load_template_once( |
name) |
-
Returns the result of the load_template_once() method of the
application in the app member.
-
Calls the application load_template() method to load the
template specified in the name argument and sets the execution
context global namespace to the globals of the function which called
this method. The template to_html() method is then called to
execute the template.
-
Calls the application load_template_once() method. If the
template specified in the name argument is loaded or reloaded
the method sets the execution context global namespace to the globals
of the function which called this method, then the template
to_html() method is then called to execute the template.
-
Overrides the NamespaceMixin clear_locals() method to
retain the __page__ local namespace value.
-
Sets the current application page to that specified in the name
argument. If changing pages and there is a current page defined then
before changing pages the page_leave() function/method will
be called for the current page. The locals.__page__ member
is then set to name and the new page is loaded. Any addition
arguments passed to the method will be passed to the
page_enter() function/method code which is associated with
the new page.
Refer to page in section 7.10 for an
explanation of page functions/methods.
-
Pushes an application page onto the page stack. The current page
can be returned to by calling the pop_page() method. The
page_leave() function/method of the current page is not
called. The new page is loaded and it's page_enter()
function/method is called. Any additional arguments given will be
passed to the page_enter() function/method associated with
the new page.
-
Pops the current page from the page stack and returns to the page
that was current when the push_page() method was called. The
page_leave() function/method of the current page is called
prior to loading the original page. The page_enter()
function/method of the original page is not called.
-
Saves the browser request specified in the req argument as the
request.
-
Returns whether or not the browser request contains a non-empty field
with a name which matches the name argument.
-
Returns the result of the application base_url() method.
-
Returns the path component (see the standard urlparse module)
of the URI used to request the current page.
-
Returns the base_url parameter to the application constructor
transformed into an absolute URL.
-
Returns an absolute URL for the application page identifier specified
in the loc parameter.
-
Raises a Redirect exception requesting a redirect to the
location in the loc parameter from the application
run() method.
If the loc parameter contains either a scheme or netloc (from
the standard urlparse module), or begins with a ``/'' then is
it used without modification for the Redirect exception.
Other forms of loc are assumed to be page identifiers and are
passed to redirect_url() before being raised as a
Redirect exception.
Release 1.33, documentation updated on January 04, 2006.