2017-07-25 54 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()可以是你從用戶想要的任何值。

相關問題