3

我正在使用 webpy 制作一个 Web 服务器,现在我有一个简单的表单和一个我写的特殊类。我希望用户能够在表单中编写代码,如果输入是函数调用,则调用用户提交的函数,否则如果输入不是函数调用,则对输入执行任何操作。我相信这必须在模板文件的某个地方实现?任何帮助将不胜感激

4

2 回答 2

5

如果我理解正确,您正在寻找一种在服务器上运行客户端提交的代码并从表单获取输入的方法。

所以假设你有一个看起来像这样的表单模板(注意 textarea 元素的名称):

<form method="POST">
<textarea name="code" />
<input type="submit">
</form>

您需要向页面类添加一个 POST 方法来处理输入并运行代码:

class MyPage:
    def POST(self):
        data = web.input()
        eval(data.code)

对于您不完全信任的任何人都可以访问的表单,这不是您应该做的事情,因为它可以在您的网络服务器上运行他们想要的任何代码(例如,他们可以轻松尝试并删除所有文件服务器)。但是,如果您对安全风险感到满意或只是在玩玩,请务必阅读 Pythons eval的文档以查看您可以传递给它的其他参数。

于 2012-07-27T16:06:31.527 回答
2

创建一个 Python cgi 脚本并在您的网络服务器的 cgi-bin 中运行它。这是一个教程。然后脚本可以访问表单的输入并使用它做任何你想做的事情。

于 2012-07-27T15:52:02.227 回答