2017-07-25 68 views
1

我有一个.py文件,说'car.py'。它需要3个输入(颜色,制作,年份)。它接受用户输入并读取一个文件,然后返回输入中给定的颜色,年份和年份的所有匹配实例。这个脚本运行良好。如何以用户输入作为参数运行.py脚本

现在,我想创建一个网页,像一个搜索页面一样工作。它要求3个输入,搜索文件(本地)并返回结果。

我第一次使用Django,我很难搞清楚如何调用car.py文件并在返回结果之前让它在后台运行。

我有一个html界面,但我知道我不能在其中引用python脚本。 Django中有没有类似的东西?在哪里可以引用脚本,并且按下按钮时,它会在给出用户输入的情况下运行该脚本?

我不期待一个完整的编码答复,我只是想澄清或参考答案。我在网上找不到类似的东西。

+1

您是否试图在不重新加载/更改当前页面的情况下进行搜索?在这种情况下,使用Javascript或其他运行搜索的异步选项可能是正确的。如果您不介意加载新页面,则可以创建一个表单提交给运行搜索并显示结果的路由/端点。 –

+0

_PHP_函数['exec()'](http://php.net/manual/it/function.exec.php)?您可以在_PHP_中处理表单发布,并从中执行一个shell命令,该命令以用户输入为参数运行脚本? – Marco

+0

@Andrew Zick,页面可以重新加载。表单如何提交到路由/端点?你可以扩展一下吗? – ana

回答

1

要移动我的如何在Django中提交表单而不是评论的响应,因为它现在是更多的答案。

当您提交表单时,通常会将POST请求发送到具有表单值的网站。所以,当我说表单将提交到路由时,我的意思是POST请求会发送到您的Django网站中的特定视图,这个视图基本上可以是您的car.py文件并进行一些更改。这里有一个表格的an example,它会接受你想要的三个输入,这里的an example可以基本上是你的“car.py”和a template

你的观点的一个粗略的例子:

def search_view(request): 
    if request.method == 'POST': 
     form = SearchForm(request.POST) 

     if form.is_valid(): 
      # process the data with your code from "car.py" 
      # render your results page 
      return render(request, 'results.html') 
    # if a GET (or anything else) just render the same search page again 
    else: 
     form = SearchForm() 
    return render(request, 'search.html', {'form': form}) 

SearchForm()可以是你从用户想要的任何值。

相关问题