可执行文件和django

时间:2011-04-15 19:55:32

标签: python django

是否可以在Django中使用可执行文件。例如,我有一个Django表单,它输入一个文件。我想将文件作为参数传递给脚本/可执行文件/程序,并使用django输出结果。这个想法会有什么好的起点?非常感谢

4 个答案:

答案 0 :(得分:5)

答案 1 :(得分:1)

你应该问的问题是它可能在python中。基本上所有你需要做的就是将输入接收到一个python脚本中,你可以从你的django视图中调用,或者不是。一旦在您的可执行文件中运行执行subprocess命令,并接收结果。 :)

古德勒克。

答案 2 :(得分:1)

你想要这样的东西吗?

>>> import commands 
>>> commands.getstatusoutput('pwd')
(0, '/home/efazati')

答案 3 :(得分:0)

是的,你可以这样做。在Python中有几种不同的方法可以做到这一点。如果您想阅读输出并使用它,那么您可能需要popen,可在http://docs.python.org/library/os.html#os.popen

找到

警告,这可能非常危险。如果添加到命令行的数据是恶意的(甚至是意外的),那么您可能会在服务器上造成不良内容。您有效地为提交表单的人提供了在服务器上运行命令的能力,并且具有与Web服务器相同的权限。

import os
ls_fd = os.popen('ls -l /tmp')
output = ls_fd.read()
ls_fd.close()

这样做你的ls_fd是一个像object这样的文件。你.read()就像一个文件。你只能做一次,然后你就在文件的末尾。同样,你应该在完成后关闭()它。

强烈考虑不在命令行中添加用户输入。您可以创建可能的选项列表,然后为用户提供他们想要的选项。然后,您可以使用一个预先配置的命令行并执行该操作,而不是将用户的输入添加到命令行的末尾。