2012-04-08 211 views
2

我有一个正在运行的Django站点。我需要添加一项功能才能响应用户操作调用wget。我应该如何从Django应用程序执行此操作?从Django运行unix命令

回答

5

由于Django是用Python编写的,因此您可以使用Python的subprocess模块在其中一个视图中调用wget。但是,如果您只想下载带有wget(并且不使用其高级功能之一)的文件,则可以使用urllib2更容易地模拟其行为。

+0

另外,如果这种操作是昂贵的,你例如,通过使用Celery,必须考虑在请求周期外运行操作。 – 2012-04-09 03:09:44

2

有你为什么诉诸UNIX命令,而不是使用像urllib2的理由吗?

如果有,你总是可以在视图里使用这样的:

from subprocess import call 
call(["wget", "http://myurl.com"]) 

这里对此事进行了非常全面的线程:

Calling an external command in Python