2017-03-17 14 views
0

私は、HTMLテキストボックスからユーザー入力を受け取り、Pythonスクリプトで実行するDjango Webアプリケーションを作成しています。スクリプトはコマンドラインからテキストを入力するときに機能しますが、スクリプトを通過するときにテキストに何が起こるのかをWebアプリケーションに表示させたいと思っています。Django Help:テキストボックスからテキストデータを取り出し、Pythonスクリプトをパススルーする方法は?

私はすでにDjango Webアプリケーションを作成しています。サーバーが実行されると、単純なテキストボックスで基本HTMLページが実行され、送信ボタンが表示されます(これはフォームです)。

私は(コマンドラインから)ユーザー入力を受け取り、スクリプトを通して入力されたテキストを実行する別のpythonスクリプトを書いています。

関数からのinput()をHTMLページのフォームデータに置き換えるにはどうすればよいですか?

私が何をしたいのかの例は:

<form action=""> 
text: <input type="text" name="handle" value=""><br> 
<input type="submit" value="Submit"> 
</form> 

上記は、送信ボタンを持つ単純なフォームです。 「送信」ボタンを押すと、私はデータをスクリプトに行きたいこと:入力除き

import statements 

def blah(): 
screenname = input('Enter your name here: ') 
output = screenname.functionA 
print(output) 

()HTMLファイルからフォームデータに置き換えられます。

ここで、私はPythonスクリプトをDjangoアプリケーションに格納しますか?

フォームのテキストをPythonスクリプトにどのように渡すのですか?

すべてのヘルプは高く評価され、私は一度に私のWebデザイン能力一歩を開発しようとしています:)

答えて

2

形で始めることができます。あなたはDjangoのビューにそのフォームをポストする必要があります:あなたはそれがPOST要求であれば、要求の方法を確認し、する必要があります、そのページをレンダリングビューインサイド

<form method="POST" action=""> 
    <inputs here ...> 
</form> 

、その後にそれを渡します関数。

def view_name(request): 
    if request.method == "POST": 
    screenname = request.POST.get("handle", None) # handle is the name of the input in the question. 
    # Here you can do anything with your screenname, like passing it to the function. 
    return render(request, 'path/to/form.html', {}) 

ここでカスタムスクリプトをdjangoに入れてください。 1つの方法は、あなたのアプリの中にutils.pyスクリプトを追加し、前のコードでutils.blah(sreenname)を呼び出すことです。また、代わりにprintのあなたは結果を返し、それを表示することができます:コードの最後のビットに関しては

from app_name.utils import blah 
def view_name(request): 
    if request.method == "POST": 
    screenname = request.POST.get("handle", None) 
    result = blah(screenname) 
    return render(request, 'path/to/result.html', {'result': result} 
    return render(request, 'path/to/form.html', {}) 
+0

を:すべてのDjangoのビューのことですか? –

+0

はい。 Model View Controllerロジックと考えると、djangoはModel Template View型のフレームワークです。これはView –

+0

の仕事です。上記の例では、urls.pyはどのように見えますか? –

関連する問題