13.5 All methods

Here is a list of all the standard methods and attributes that can be accessed from a placeholder. Some of them exist for you to call, others are mainly used by Cheetah internally but you can call them if you wish, and others are only for internal use by Cheetah or Webware. Do not use these method names in mixin classes (#extends, section 8.2) unless you intend to override the standard method.

Variables with a star prefix (*) are frequently used in templates or in pure Python classes.

Inherited from Cheetah.Template

compile(source=None, file=None, moduleName=None, mainMethodName='respond') Compile the template. Automatically called by .__init__.
generatedModuleCode() Return the module code the compiler generated, or None if no compilation took place.
generatedClassCode() Return the class code the compiler generated, or None if no compilation took place.
* searchList() Return a reference to the underlying search list. (a list of objects). Use this to print out your searchList for debugging. Modifying the returned list will affect your placeholder searches!
* errorCatcher() Return a reference to the current error catcher.
* refreshCache(cacheKey=None) If 'cacheKey' is not None, refresh that item in the cache. If None, delete all items in the cache so they will be recalculated the next time they are encountered.
* shutdown() Break reference cycles before discarding a servlet.
* getVar(varName, default=NoDefault, autoCall=True) Look up a variable in the searchList. Same as $varName but allows you to specify a default value and control whether autocalling occurs.
* varExists(varName, autoCall=True)
* getFileContents(path) Read the named file. If used as a placeholder, inserts the file's contents in the output without interpretation, like #include raw. If used in an expression, returns the file's content (e.g., to assign it to a variable).
runAsMainProgram() This is what happens if you run a .py template module as a standalone program.

Inherited from Cheetah.Utils.WebInputMixin

nonNumericInputError Exception raised by .webInput.
* webInput(...) Convenience method to access GET/POST variables from a Webware servlet or CGI script, or Webware cookie or session variables. See section 14.7 for usage information.

Inherited from Cheetah.SettingsManager

setting(name, default=NoDefault) Get a compiler setting.
hasSetting(name) Does this compiler setting exist?
setSetting(name, value) Set setting 'name' to 'value'. See #compiler-settings, section 11.2.
settings() Return the underlying settings dictionary. (Warning: modifying this dictionary will change Cheetah's behavior.)
copySettings() Return a copy of the underlying settings dictionary.
deepcopySettings() Return a deep copy of the underlying settings dictionary. See Python's copy module.
updateSettings(newSettings, merge=True) Update Cheetah's compiler settings from the 'newSettings' dictionary. If 'merge' is true, update only the names in newSettings and leave the other names alone. (The SettingsManager is smart enough to update nested dictionaries one key at a time rather than overwriting the entire old dictionary.) If 'merge' is false, delete all existing settings so that the new ones are the only settings.
updateSettingsFromPySrcStr(theString, merge=True) Same, but pass a string of name=value pairs rather than a dictionary, the same as you would provide in a #compiler-settings directive, section 11.2.
updateSettingsFromPySrcFile(path, merge=True) Same, but exec a Python source file and use the variables it contains as the new settings. (e.g., cheetahVarStartToken = "@").
updateSettingsFromConfigFile(path, **kw) Same, but get the new settings from a text file in ConfigParser format (similar to Windows' *.ini file format). See Python's ConfigParser module.
updateSettingsFromConfigFileObj Same, but read the open file object 'inFile' for the new settings.
updateSettingsFromConfigStr(configStr, convert=True, merge=True Same, but read the new settings from a string in ConfigParser format.
writeConfigFile(path) Write the current compiler settings to a file named 'path' in *.ini format.
getConfigString() Return a string containing the current compiler settings in *.ini format.

Inherited from Cheetah.Servlet

Do not override these in a subclass or assign to them as attributes if your template will be used as a servlet, otherwise Webware will behave unpredictably. However, it is OK to put same-name variables in the searchList, because Webware does not use the searchList.

EXCEPTION: It's OK to override awake and sleep as long as you call the superclass methods. (See section 13.4.)

* isControlledByWebKit True if this template instance is part of a live transaction in a running WebKit servlet.
* isWebwareInstalled True if Webware is installed and the template instance inherits from WebKit.Servlet. If not, it inherits from Cheetah.Servlet.DummyServlet.
* awake(transaction) Called by WebKit at the beginning of the web transaction.
* sleep(transaction) Called by WebKit at the end of the web transaction.
* respond(transaction) Called by WebKit to produce the web transaction content. For a template-servlet, this means filling the template.
shutdown() Break reference cycles before deleting instance.
* serverSidePath() The filesystem pathname of the template-servlet (as opposed to the URL path).
transaction The current Webware transaction.
application The current Webware application.
response The current Webware response.
request The current Webware request.
session The current Webware session.
write Call this method to insert text in the filled template output.

Several other goodies are available to template-servlets under the request attribute, see section 14.7.

transaction, response, request and session are created from the current transaction when WebKit calls awake, and don't exist otherwise. Calling awake yourself (rather than letting WebKit call it) will raise an exception because the transaction argument won't have the right attributes.

Inherited from WebKit.Servlet

These are accessible only if Cheetah knows Webware is installed. This listing is based on a CVS snapshot of Webware dated 22 September 2002, and may not include more recent changes.

The same caveats about overriding these methods apply.

name() The simple name of the class. Used by Webware's logging and debugging routines.
log() Used by Webware's logging and debugging routines.
canBeThreaded() True if the servlet can be multithreaded.
canBeReused() True if the servlet can be used for another transaction after the current transaction is finished.
serverSideDir() Depreciated by .serverSidePath().



Subsections