我想知道是否有一个技巧可以(轻松地)将一些 python 代码合并到 moinmoin 页面中,也许通过添加一些 action .这个想法是像
<<<
for j in [1,3,5]:
print(i)
>>>
在页面上显示为
1
3
5
快速和肮脏没关系,安全不是问题,我想将它用于独立的“desktop-mode”安装。
最佳答案
另一种方法是添加解析器。
下面是对 Moinmoin's Hello World parser 的非常快速和肮脏的改编.
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>"))
如保存为path/to/MoinMoin/parser/interpret_python.py
,则可以进入页面
{{{#!interpret_python
for j in [1,3,5]:
print(j)
}}}
它会生成文本
1
3
5
查看页面时。可以通过将执行限制在 sandbox 来变得安全 (r) .
关于python - 有没有办法将 python 代码合并到 moinmoin 页面中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443514/