如何使用Django在HTML按钮上执行file.py?

HCF3301

我的目标是单击Django网页上的HTML按钮,这将执行本地python脚本。

我正在创建一个本地Web应用程序作为项目的接口。它不会被托管,并且将始终只在我的本地计算机上运行。我的项目使用python脚本运行(该脚本执行了针对我的项目的许多测试)。我只需要在Web界面中单击一个按钮即可在计算机上执行此脚本。

我有一个模板index.html,整个网页都位于其中。我想我可能需要在按下按钮时调用某种形式的视图函数?

如何通过Django HTML按钮执行python代码?

这个问题表明:

def index(request):
    if request.method == 'GET':
        return render(request, 'yourapp/index.html', {'output': ''})
    elif request.method == 'POST':
        py_obj = mycode.test_code(10)
        return render(request, 'yourapp/output.html', {'output': py_obj.a})

我只是作为测试尝试了此操作,但是转到URL(位于相应的views.py中)时没有任何反应:

def runtest(request):
    print("Hello World")
    Popen(['gnome-terminal', '-e', 'echo "Hello World"'], stdout=PIPE)
    return

但是我不太了解这是否达到了我所需要的,我正在努力理解答案的含义。

按下按钮时,在Django框架中的哪里可以指定对本地python脚本的调用?

(我在Web应用程序方面的经验非常有限,这只是意味着它是一个简单的界面,带有一些用于运行测试的按钮)

詹姆士

您要尝试做的是单击按钮时提交一个表单。然后,您可以从脚本中导入要运行的函数,然后在视图中调用它们。然后,您重定向到同一页面。

我希望这有帮助!

index.html

<form method="post">
    {% csrf_token %}
    <button type="submit" name="run_script">Run script</button>
</form>

views.py

if request.method == 'POST' and 'run_script' in request.POST:

    # import function to run
    from path_to_script import function_to_run

    # call function
    function_to_run() 

    # return user to required page
    return HttpResponseRedirect(reverse(app_name:view_name)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章