Skip to main content
 首页 » 编程设计

python之将 python 脚本与 django 集成

2024年08月30日30java哥

我用 python 编写了一些测试脚本,它们为特定应用程序调用一些 api,并将结果输出到数据库,这样我就可以使用 jasper 来报告结果。目前脚本是使用 python 解释器运行的,即双击 python 文件,该文件在脚本中修改了一些参数和变量,然后启动测试。我想转向对用户更友好的界面,以便其他人可以使用这些测试脚本而无需修改 python 代码。所以我正在考虑使用 django 并创建一个带有复选框的网页,如果勾选了复选框,那么它将执行特定的 python 测试脚本或将值传递给给定变量的文本框,例如.关于如何实现这一目标,我有几个问题。

1 - 我需要在 django 源代码中实现 python 代码,还是可以从 django 提供的网页调用 python 脚本?

2 - 如果我要从网页运行它,我如何确保如果网页关闭,测试将在后台继续。

3 - 有没有办法将测试用例的状态输出到网页,如果网页已关闭,如果重新打开网页,状态是否可用?

非常感谢 - oli

请您参考如下方法:

如果你有一个 python 函数,你可以从 Django django View 调用,也许使用一个表单作为参数输入。如果您有长时间运行的进程,您可能需要考虑这里的提示:How to start a long-running process from a Django view?

from mytests import testfunc 
 
def test_parameter_view(request): 
    if request.method == 'POST': # If the form has been submitted... 
        form = ParameterForm(request.POST) 
        if form.is_valid(): 
            testfunc(form.cleaned_data['parameter'])   # <-- Here the actual testing happens 
            return HttpResponseRedirect(reverse(test_result)) # Redirect after POST 
    else: 
        form = ParameterForm() 
 
    return render_to_response('test.html', { 
        'form': form, 
    }) 

在您的 test_result View 中,您可以访问数据库中的测试结果值。

用户是否关闭浏览器不会影响已经启动的服务器进程。由于您将结果写入数据库,因此它们是持久的并且可以在测试完成后随时访问。