Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 340e71071a040c53e36637aa9a238c61 > files > 135

apache-mod_python-doc-3.3.1-5mdv2008.1.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="modpython.css" type='text/css' />
<link rel="first" href="modpython.html" title='Mod_python Manual' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="ssi-data-scope.html" />
<link rel="prev" href="ssi-overview.html" />
<link rel="parent" href="ssi.html" />
<link rel="next" href="ssi-data-scope.html" />
<meta name='aesop' content='information' />
<title>6.2 Using Python Code</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.1 Overview of SSI"
  href="ssi-overview.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="6. Server Side Includes"
  href="ssi.html"><img src='up.png'
  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="6.3 Scope of Global"
  href="ssi-data-scope.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Mod_python Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='contents.png'
  border='0' height='32'  alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='index.png'
  border='0' height='32'  alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="ssi-overview.html">6.1 Overview of SSI</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="ssi.html">6. Server Side Includes</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="ssi-data-scope.html">6.3 Scope of Global</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION008200000000000000000"></A><A NAME="ssi-python-code"></A>
<BR>
6.2 Using Python Code
</H1>

<P>
The extensions to mod_python to allow Python code to be used in conjunction
with SSI introduces the new SSI directive called 'python'. This directive
can be used in two forms, these being 'eval' and 'exec' modes. In the case
of 'eval', a Python expression is used and it is the result of that
expression which is substituted in place into the page.

<P>
<div class="verbatim"><pre>
&lt;!--#python eval="10*'HELLO '" --&gt;
&lt;!--#python eval="len('HELLO')" --&gt;
</pre></div>

<P>
Where the result of the expression is not a string, the value will be
automatically converted to a string by applying <code>str()</code> to the value.

<P>
In the case of 'exec' a block of Python code may be included. For any
output from this code to appear in the page, it must be written back
explicitly as being part of the response. As SSI are processed by an Apache
output filter, this is done by using an instance of the mod_python
<code>filter</code> object which is pushed into the global data set available to
the code.

<P>
<div class="verbatim"><pre>
&lt;!--#python exec="
filter.write(10*'HELLO ')
filter.write(str(len('HELLO')))
" --&gt;
</pre></div>

<P>
Any Python code within the 'exec' block must have a zero first level
indent. You cannot start the code block with an arbitrary level of indent
such that it lines up with any indenting used for surrounding HTML
elements.

<P>
Although the mod_python <code>filter</code> object is not a true file object, that
it provides the <code>write()</code> method is sufficient to allow the <code>print</code>
statement to be used on it directly. This will avoid the need to explicitly
convert non string objects to a string before being output.

<P>
<div class="verbatim"><pre>
&lt;!--#python exec="
print &gt;&gt; filter, len('HELLO')
" --&gt;
</pre></div>

<P>

<DIV CLASS="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.1 Overview of SSI"
  href="ssi-overview.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="6. Server Side Includes"
  href="ssi.html"><img src='up.png'
  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="6.3 Scope of Global"
  href="ssi-data-scope.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Mod_python Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='contents.png'
  border='0' height='32'  alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='index.png'
  border='0' height='32'  alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="ssi-overview.html">6.1 Overview of SSI</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="ssi.html">6. Server Side Includes</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="ssi-data-scope.html">6.3 Scope of Global</A>
</div>
</div>
<hr />
<span class="release-info">Release 3.3.1, documentation updated on January 29, 2007.</span>
</DIV>
<!--End of Navigation Panel-->

</BODY>
</HTML>