如何将现有脚本集成到Django中?

1 投票
2 回答
1118 浏览
提问于 2025-04-16 15:12

我刚接触到Django这个框架,想用它来处理我组里的很多基于Perl/Python/wlst的脚本。我想知道怎么把普通命令行的输出实时显示到浏览器上。我查过序列化的内容,但找不到好的教程。我只是想要一些建议,看看怎么把普通的Python/Perl脚本和基于Django的网站结合起来。

具体来说:我有一个脚本,可以把用户添加到Weblogic域的某个角色组里。我希望能做到,用户填写表单后,脚本连接到服务器执行操作,然后把结果返回给用户。问题是,这个连接可能需要一点时间。

2 个回答

0

我觉得你需要说得更具体一些。如果你想在浏览器中显示某个“操作”的结果,你需要使用一个view,它会把模板渲染出来。

引用一下django的视图文档

视图函数,简称视图,其实就是一个Python函数,它接收一个网页请求,然后返回一个网页响应。这个响应可以是网页的HTML内容,也可以是重定向、404错误、XML文档,甚至是一张图片……总之,几乎什么都可以。视图本身包含了返回这个响应所需的任何逻辑。这段代码可以放在你想放的任何地方,只要它在你的Python路径上就行。

所以,如果你有一个可以工作的Python函数或脚本,你可以在你的视图中导入它,然后把结果通过这种方式传递给你的模板。

1

你想在网页上显示外部脚本的结果吗?那么,我建议你让这些脚本把结果写入数据库,然后用Django模型来获取和显示这些信息。

如果你想每次用户打开网页时都执行这个脚本并显示结果,可以使用以下的Python代码:

def command_output(cmd):
    """ Capture a command's standard output."""
    import subprocess;
    return subprocess.Popen(cmd.split(), stdout=subprocess.PIPE).communicate()[0];

result = command_output('ls -al');

撰写回答