【问题标题】:How to execute a python program by a button click on html page generated by django如何通过按钮单击django生成的html页面来执行python程序
【发布时间】:2013-06-16 13:37:30
【问题描述】:

我创建了一个 Django 项目来启动一个 htmlpage,该页面有一个名为 run test 的按钮。单击按钮时,我想运行一个python脚本文件hello.py(位于django项目之外)。我对这个脚本很陌生。

谁能尽快帮我解答这个问题?我们将不胜感激。

我的 django 项目包含以下文件:

TestProject(项目文件夹)

我的应用程序(文件夹)

  • int.py
  • admin.py
  • models.py
  • tests.py
  • urls.py
  • views.py

模板(文件夹)

  • index.html

测试项目(文件夹)

  • int.py
  • urls.py
  • settings.py
  • views.py
  • wsgi.py
  • admin.py
  • manage.py

python脚本file-helllo.py位于C:/hello.py

【问题讨论】:

    标签: django python-2.7


    【解决方案1】:

    您可以采取两种基本方法来做到这一点:

    (1) 将脚本作为子进程运行(即在 django 应用程序之外执行单独的程序) - 这在 Python docs on subprocesses 中有记录。下面是一个简短的示例,您需要阅读文档以准确了解您希望如何调用脚本(即处理返回码、输出到 stdout 和 stderr 等)

    import subprocess
    subprocess.call(["python", "C:/hello.py"])
    

    (2) 如果这个脚本中有特定的函数可以调用,那么可以将包含python脚本的目录添加到sys.path,然后导入脚本并调用相关功能。这在stack overflow question 中有详细说明,并且可以说是更清洁的方法(作为旁注,建议将 hello.py 移动到更合适的位置,C: 驱动器的根目录可能不是存储脚本的正确位置)。

    import sys
    sys.path.append("C:/")
    
    from hello import function_to_call
    function_to_call()
    

    如果您正在努力将网页放在一起,允许您显示按钮并通过调用脚本对按钮按下做出反应,建议您阅读优秀的 Django 教程writing your first Django application。

    【讨论】:

    • 你能用一个文件 hello.py 来说明这个过程吗
    • 已添加有关如何以两种不同方法调用脚本的示例。关于如何将其烘焙到 django web 应用程序中,这太复杂了,无法在这里回答,上面链接的教程可能是你最好的选择。
    猜你喜欢
    • 2012-01-23
    • 1970-01-01
    • 2016-03-03
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多