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

inn6fuwd  于 2023-01-21  发布在  Go
关注(0)|答案(2)|浏览(124)

我的目标是点击Django网页上的一个HTML按钮,这将执行一个本地python脚本。
我正在创建一个本地web应用程序作为一个项目的接口。这个应用程序不会被托管,它将一直在我的本地机器上运行。我的项目是用python脚本运行的(它执行许多特定于我的项目的测试)。我所需要的只是在我的web界面中的一个按钮,以便在我的机器上执行这个脚本。
我有一个模板index.html,整个网页都在这里。我想我需要调用一些形式的视图函数可能当按钮被按下?
How to execute python code by django html button?
这个问题表明:

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应用程序的经验非常有限,这只是一个简单的界面,有一些按钮来运行测试)

lg40wkob

lg40wkob1#

您希望尝试在单击按钮时提交表单。然后可以从脚本导入要运行的函数,并在视图中调用它们。然后重定向到同一页。
希望这能有所帮助!

    • 索引. html**
<form method="post">
    {% csrf_token %}
    <button type="submit" name="run_script">Run script</button>
</form>
    • 查看次数. 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))
dgiusagp

dgiusagp2#

补充以上答案。您可以在完全不同的视图中运行该函数:
<form method="post" action="{% url 'app:view/function' %}"> {% csrf_token %} <button class="btn btn-danger btn-block btn-round">Perform task</button> </form>
并呈现任何你想要的模板(同样的模板将执行任务,但似乎什么也没有发生)。这是方便的,如果你已经有一个'POST'表单处理程序。

相关问题