擅长:python、mysql、java
<p>另一种方法是添加解析器。在</p>
<p>下面是<a href="http://moinmo.in/parser/HelloWorld.py">Moinmoin's Hello World parser</a>的一个非常快速和肮脏的改编。在</p>
<pre><code>import StringIO
import sys
class Parser():
def __init__(self, raw, request, **kw):
self.raw = raw
self.request = request
self.kw=kw
def format(self, formatter):
# Execute the code
code_out = StringIO.StringIO()
sys.stdout = code_out
exec self.raw
sys.stdout = sys.__stdout__
out_lines = code_out.getvalue().split("\n")
# Print the output
for out_line in out_lines:
self.request.write(formatter.rawHTML(out_line+"<br>"))
</code></pre>
<p>如果它保存为<code>path/to/MoinMoin/parser/interpret_python.py</code>,那么您可以进入一个页面</p>
^{pr2}$
<p>它会产生文本</p>
^{3}$
<p>查看页面时。可以通过将执行限制为<a href="http://wiki.python.org/moin/SandboxedPython">sandbox</a>来保证安全(r)。在</p>