2017-07-25 7 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_のフォームポストを処理できますか?それからユーザー入力を引数としてスクリプトを実行するシェルコマンドを実行できますか? – Marco

+0

@Andrew Zick、ページをリロードすることができます。フォームがルート/エンドポイントにどのくらい正確に送信されますか?少し拡大していただけますか? – ana

答えて

1

ここで答えが増えているので、Djangoのフォームをコメントの代わりにここに送ってください。

フォームを送信すると、通常、フォームの値を含むウェブサイトにPOSTリクエストが送信されます。したがって、フォームがルートに送信されると言うと、私はあなたのDjangoウェブサイトの特定のビューにPOSTリクエストが送信されることを意味します。ここには、あなたの3つの入力を取り込むフォームのan exampleがあります。ここには基本的に "car.py"になるビューのan examplea 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()は、ユーザーから好きな値にすることができます。

関連する問題