如何在Django视图中运行命令行Python脚本?

3 投票
1 回答
3782 浏览
提问于 2025-04-15 19:12

我有一个.py文件,它是通过一个php文件来运行的,像这样:

$link = exec(dirname(__FILE__) . /xxx.py ' .excapeshellarg($url) . '2>&1', $output, $exit_code);

我想在我的django视图中运行这个xxx.py文件,并把输出结果赋值给一个变量。这个xxx.py文件里面有一个叫做def main(url)的函数,底部还有if __name__ == '__main__':这行代码。我可以怎么修改xxx.py文件,从我的视图中调用这个def main函数呢?

目前直接从视图调用时,它并没有像在命令行中那样运行。

谢谢你的回复。

1 个回答

2

有没有办法让我编辑一下xxx.py文件,并从我的视图中调用def main函数呢?

可以的。你需要修改一下main函数,让它返回结果为一个字符串,而不是像现在这样直接打印到stdout(标准输出)。

然后,在你的视图里面,你可以这样做:

import xxx
results = xxx.main('foo')
# Do something with results

撰写回答