diff options
Diffstat (limited to 'recipes/content/@staticmethod_and_@classmethod.html')
-rw-r--r-- | recipes/content/@staticmethod_and_@classmethod.html | 436 |
1 files changed, 0 insertions, 436 deletions
diff --git a/recipes/content/@staticmethod_and_@classmethod.html b/recipes/content/@staticmethod_and_@classmethod.html deleted file mode 100644 index 30e622e..0000000 --- a/recipes/content/@staticmethod_and_@classmethod.html +++ /dev/null @@ -1,436 +0,0 @@ - - - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> -<html> - <head> - <title>Community Cheetah - The Python-Powered Template Engine - @staticmethod_and_@classmethod</title> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/> - <meta name="keywords" content="cheetah, template engine, python, community cheetah, templating, markdown, markup, mod_python, webware"/> - <meta name="googlebot" content="index, follow" /> - <meta name="language" content="en-us, english" /> - </head> - <body> - <style type="text/css"> - <!-- - /* This CSS style sheet was developed by www.studio7designs.com for opensourcetemplates.org ... Please email if you have any questions aran@studio7designs.com Have fun! */ - - -body { -background:#ffffff url('../../images/bg.jpg') top center repeat-x; -margin:10px 10px 0px 10px; -padding:0px; -color: #000; -font-family:"Trebuchet MS",arial,sans-serif; -font-size: 80%; - -} - -body a:link, body a:visited { - color: blue; -} - -#blogtitle{ -width:100%; -margin:0px auto; -padding:0 0 5px 0; -font-size:1.1em; -line-height:1.2em; -} - -#blogtitle a:link, a:visited { - color:#b8ce83; - text-decoration:none; -} - -#blogtitle a:hover, a:active { - color:#fff; - text-decoration:none; -} - -#small{ -positon:relative; -padding-left: 5px; - -} - -#small2{ -positon:relative; -float:right; -margin-top: -15px; - -} - -UL.BLUE { -list-style: url(../../images/bullet.jpg) disc; -font-size: 1.1em; - -} - -#leftcontent { -position: absolute; -left:10px; -top:50px; -width:200px; -margin-top: 116px; -background-image:url("../../images/strips_onside.jpg"); -background-repeat:repeat-y; -font-size:1.0em; -padding-left: 12px; -padding-top: 8px; - -} - -#leftcontent p{padding-right:10px; margin-left: 5px; color:#888; font-size:1em;} - -#centercontent { -margin-top: 37px; -background:#fff; -margin-left: 199px; -margin-right:199px; -color:#000; -voice-family: "\"}\""; -voice-family: inherit; -margin-left: 201px; -margin-right:201px; -padding:20px; -font-size: 1.3em; -} - -#centercontent p {color:#000;} - -html>body #centercontent { -margin-left: 201px; -margin-right:201px; - -} - -.centercontentleft {float:left; width:40%; height:200px; background-color:#fff; text-align:left; -border:dashed 2px #ccc; margin: 4px 10px 5px 10px; padding:6px; font-size:1.1em; color:#666666;} - -.centercontentright {float:right; width:30%; height:100px; background-color:#fff; text-align:left; -border:dashed 2px #ccc; margin: 4px 10px 5px 10px; padding:6px; font-size:1.1em; color:#666666;} - - -#rightcontent { -position: absolute; -right:10px; -top:0px; -width: 200px; -font-size:1.1em; -background-image:url("../../images/strips_onside.jpg"); -background-repeat:repeat-y; -margin-top:150px; -padding-left: 5px; -padding-right: 8px; -padding-top: 8px; -} - -#rightcontent p {color:#888;} - -#banner { -background:#fff; -height:40px; -voice-family: "\"}\""; -voice-family: inherit; -height:39px; - -} - -html>body #banner { -height:39px; - -} - -p,h1,pre { -margin:0px 10px 10px 10px; -font:Arial, Helvetica, sans-serif; -font-size:12px; -line-height: 1.6em; -text-align:justify; -text-decoration:none; -} - -h1 { -font-size:2.5em; -float:right; -color:#ccc; -padding-top:15px; - -} - -h3 { -font-size:14px; -color:#999; - -} - -#banner h1 { -font-size:14px; -padding:10px 10px 0px 10px; -margin:0px; - -} - -#rightcontent p { -font-size:11px - -} - -.introduction ul, #introduction li { -text-align:center; -list-style: none; -margin: 0; -padding: 0; - -} - -.introduction h3{ -text-align: center; -position:static; - -} - - -/* ~~~~~~~~~ PROPS FOR THE MENU GO OUT TO EXPLODING-BOY.COM ~~~~~~~~~ */ - -#topmenu { -position: absolute; -top: 45px; -left: 240px; -width: 600px; -font-size:100%; -margin: 0 0 50px 0;; -line-height:normal; -height: 35px; -} -#topmenu ul { -margin:0; -padding:0px 0px 0 0px; -list-style:none; -} -#topmenu li { -display:inline; -margin:0; -padding:0; -} -#topmenu a { -float:left; -background:url(../../images/menuleft.gif) no-repeat left top; -margin:0; -padding:0 0 0 4px; -text-decoration:none; -} -#topmenu a span, a:visited span { -float:left; -display:block; -background:url(../../images/menuright.gif) no-repeat right top; -padding:5px 15px 4px 6px; -color:#888; -} - -/* Commented Backslash Hack hides rule from IE5-Mac \*/ -#topmenu a span {float:none;} -/* End IE5-Mac hack */ -#topmenu a:hover span { -color:#999999; -} -#topmenu a:hover { -background-position:0% -42px; -} -#topmenu a:hover span { -background-position:100% -42px; -} - -/* ~~~~~~~~~ END MENU ~~~~~~~~~ */ - - - -/* ~~~~~~~~~ BEGIN FOOTER ~~~~~~~~~ */ - -#footer{ -/*height:329px;*/ -background:#000 url('../../images/bg.jpg') top center repeat-x; -text-align: center; -padding-top: 8px; -clear: both; -float: none; -margin-left: -10px; -margin-right: -10px; -margin-bottom: -20px; - -} - -#footer a, a:link { -color:#999999; -text-decoration: none; - -} -#footer a:hover { -color:#A5CE77; -text-decoration: none; - -} - -/* ~~~~~~~~~ END FOOTER~~~~~~~~~ */ - - -/* ~~~~~~~~~ BOXES AT BOTTOM OF PAGE ~~~~~~~~~ */ - -.centercontentleftb {float:left; width:45%; height:200px; background-color:#31412c; text-align:left; -border:dashed 1px #888; margin: 50px 10px 5px 10px; padding:6px; font-size:1.1em; color:#fff;} - - -.centercontentleftimg {float:left; width:45%; height:45%x; background-color:#31412c; text-align:left; -border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;} - -.centercontentrightimg {float:right; width:45%; height:45%; background-color:#31412c; text-align:left; -border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;} - -.centercontentrightb {float:right; width:45%; height:200px; background-color:#31412c; text-align:left; -border:dashed 1px #888; margin: 50px 13px 5px 10px; padding:6px; font-size:1.1em; color:#fff;} - -.centercontentleftimg {float:left; width:45%; height:45%; background-color:#31412c; text-align:left; -border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;} - -.centercontentrightimg {float:right; width:45%; height:45%; background-color:#31412c; text-align:left; -border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;} - - --> - </style> - - - <a href="http://github.com/rtyler/cheetah"> - <img style="position: absolute; top: 0; left: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_left_orange_ff7600.png" alt="Fork me on GitHub" /> -</a> - <div id="blogtitle"> - <div id="small" style="margin-left: 130px;"><a href="#">Community Cheetah</a> </div> - <div id="small2"> - <a href="../../index.html">Home</a> | - <a href="../../http://bugs.communitycheetah.org">Issues</a> | - <a href="../../http://github.com/rtyler/cheetah/tree/master">Source</a> | - <a href="../../roadmap.html">Roadmap</a> | - </div> - </div> - - <div id="topmenu"> - <ul class="BLUE"> - <li> - <a href="../../index.html" title="Home"> - <span>Home</span> - </a> - </li> - <li> - <a href="../../download.html" title="Download"> - <span>Download</span> - </a> - </li> - <li> - <a href="../../docs.html" title="Documentation"> - <span>Documentation</span> - </a> - </li> - <li> - <a href="../../recipes/" title="Recipes"> - <span>Recipes</span> - </a> - </li> - <li> - <a href="../../community.html" title="Community"> - <span>Community</span> - </a> - </li> - <li> - <a href="../../developers.html" title="Developers"> - <span>Developers</span> - </a> - </li> - </ul> - </div> - - - - <div id="centercontent"> - <h1>@staticmethod and @classmethod</h1> -<p>Refer the Python's documentation if you're unfamiliar with either -<a href="http://docs.python.org/library/functions.html#staticmethod">@staticmethod</a> or <a href="http://docs.python.org/library/functions.html#classmethod">@classmethod</a> and their uses in Python, as they -pertain to their uses in Cheetah as well. Using <a href="http://docs.python.org/library/functions.html#staticmethod">@staticmethod</a> it's -trivial to create <em>utility templates</em> which are common when using -Cheetah for web development. These <em>utility templates</em> might contain -a number of small functions which generate useful snippets of markup.</p> -<p>For example:</p> -<pre><code>#def copyright() - #import time - &copy; CheetahCorp, Inc. $time.strftime('%Y', time.gmtime()) -#end def -</code></pre> -<p><strong>Figure 1, util.tmpl</strong></p> -<p>Prior to version <strong>v2.2.0</strong> of Cheetah, there wasn't really an easy means -of filling templates with bunches of these small utility functions. In -<strong>v2.2.0</strong> however, you can decorate these methods with <code>#@staticmethod</code> -and use "proper" Python syntax for calling them, <strong>fig 1</strong> revisited:</p> -<pre><code>#@staticmethod -#def copyright() - #import time - &copy; CheetahCorp, Inc. $time.strftime('%Y', time.gmtime()) -#end def -</code></pre> -<p><strong>Figure 1.1, util.tmpl</strong></p> -<p>With the addition of the <a href="http://docs.python.org/library/functions.html#staticmethod">@staticmethod</a> decorator, the <code>copyright()</code> -function can now be used without instantiating an instance of the <code>util</code> -template class. In effect:</p> -<pre><code>#from util import util - -<strong>This is my page</strong> -<br/> -<hr noshade/> -$util.copyright() -</code></pre> -<p><strong>Figure 2, index.tmpl</strong></p> -<p>This approach is however no means to structure anything complex, -<a href="http://docs.python.org/library/functions.html#staticmethod">@staticmethod</a> and <a href="http://docs.python.org/library/functions.html#classmethod">@classmethod</a> use in Cheetah is not meant as a -replacement for properly structured class hierarchies (which -Cheetah supports). That said if you are building a web application -<a href="http://docs.python.org/library/functions.html#staticmethod">@staticmethod</a>/<a href="http://docs.python.org/library/functions.html#classmethod">@classmethod</a> are quite useful for the little snippets -of markup, etc that are needed (Google AdSense blocks, footers, -banners, etc).</p> -<p><span style="float: right; clear: both;"><em>Last edited: Sun May 31 18:40:24 2009 </em></span></p> - </div> - - <div id="rightcontent"> - <img style="margin-top:-9px; margin-left: -5px;" src="../../images/top2.jpg" alt="" /> - - <div id="twitter_div"> - <h2 class="sidebar-title">Twitter Updates</h2> - <ul id="twitter_update_list"></ul> - - <a href="http://twitter.com/cheetahtemplate" id="twitter-link" style="display:block;text-align:right;">follow Cheetah on Twitter</a> - </div> - - - <img style="padding-top:5px; margin-left:-5px; margin-bottom:-4px;" src="../../images/specs_bottom.jpg" alt="" /> - </div> - - <br clear="all"/> - <br/> - - <a href="http://www.python.org" target="_blank"><img src="../../images/python-logo.gif" border="0" alt="Python-powered" title="Python-powered" align="right"/></a> - <br clear="all"/> - <br/> - <div id="footer"> - © 2006 Design by <a href="http://www.studio7designs.com">Studio7designs.com</a> - </div> - - - <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script> - <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/cheetahtemplate.json?callback=twitterCallback2&count=5"></script> - </body> -</html> - - - - - - - - |