是否可以在Django中使用可执行文件。例如,我有一个Django表单,它输入一个文件。我想将文件作为参数传递给脚本/可执行文件/程序,并使用django输出结果。这个想法会有什么好的起点?非常感谢
答案 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()就像一个文件。你只能做一次,然后你就在文件的末尾。同样,你应该在完成后关闭()它。
强烈考虑不在命令行中添加用户输入。您可以创建可能的选项列表,然后为用户提供他们想要的选项。然后,您可以使用一个预先配置的命令行并执行该操作,而不是将用户的输入添加到命令行的末尾。