用户在网页上提交数据后,在终端FROM Django上生成命令

时间:2017-06-15 17:22:11

标签: django django-forms django-views

我制作了一个简单的Django webapp,它以CharField的形式从用户那里获取两个字符串输出,但这两个字符串需要立即在终端上自动运行我的" count.py"脚本生成另一个网页(显示我的count.py脚本的结果)。

终端中的

,用户在网页字段上提交data1和data2后,应在后端生成如下命令:

count.py data1 data2 

其中data1,data2来自于用户点击网页上的提交按钮后的views.py。 我需要以某种方式编写代码,一旦用户点击提交按钮,就会自动生成此终端命令。

以下是我的views.py

中的代码
def fields (request):
    form = first_form(request.POST or None)
    data1 = request.POST.get('data1')
    data2 = request.POST.get('data2')

    if form.is_valid(): 
        #### how should i execute the arguments 
        'data1' and 'data2' run in terminal with my 
        'count.py' script #####

    return render(request, "first_page.html", {'form': form})

这是我的count.py的代码:

def count (a, b): 
    word = False 
    a = " " + a + " "
    b = " " + b + " "

    result = 0 

    for i in range (len (a)-1): 
        if a[i] == " " and a[i+1] != " ":
            word = True 
            result += 1
        else: 
            word = False
    for i in range (len (b)-1): 
        if b[i] == " " and b[i+1] != " ":
            word = True 
            result += 1
        else: 
            word = False


    return result

1 个答案:

答案 0 :(得分:1)

你可以这样做:

import subprocess
subprocess.Popen(['python', 'count.py', 'whatever'])

但是,我认为count应该是某个Model的一部分,你应该在你的视图中调用它