Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户提交网页数据后从Django在终端上生成命令_Django_Django Forms_Django Views - Fatal编程技术网

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

用户提交网页数据后从Django在终端上生成命令,django,django-forms,django-views,Django,Django Forms,Django Views,我制作了一个简单的Django webapp,它以CharField的形式从用户那里获取两个字符串输出,但这两个字符串需要立即在终端上自动运行,并使用我的“count.py”脚本生成另一个网页(显示我的count.py脚本的结果) 在终端中,在用户提交网页charfield上的data1和data2后,在后端应该像这样生成命令: count.py data1 data2 其中data1、data2来自用户点击网页上的提交按钮后的views.py我需要以某种方式编写代码,在用户点击提交按钮时自

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

在终端中,在用户提交网页charfield上的data1和data2后,在后端应该像这样生成命令:

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

下面是my 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
你可以做:

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

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

如何创建脚本的细节超出了范围,但请尝试导入(导入os),然后执行os.system(“此处的命令”)。至少先在一个简单的.py文件上尝试一下,比如:import os…os.system(“echo$HOME”)。为什么需要从终端运行count.py代码?您应该从视图而不是从commandsyes运行代码,我还觉得应该在views.py中调用count.py。让我试试看,如果行不行就回去。谢谢你,先生!:)如何使count.py成为models.py的一部分,然后将其称为views.py?supprocess.Popen可以同时获取python文件和字符串的列表?py接受两个字符串参数:terminalI中的data1和data2。建议您使用模型视图方法。如果你不想把所有的代码都写在同一个文件中,只需在顶部导入即可。