2017-12-19 12 views
0

Djangoの新機能です。私はWeb APPを作成する予定のスクリプトを用意しています。 HTMLフォームのアクションメソッドをPythonスクリプトに渡すには、いくつかの値が必要です。スクリプト出力は同じページまたは別のページに表示されます。 スクリプト例:親切に私は、ビューテンプレートを使用して方法を知っている、私はジャンゴを通してそれを実装したいDjangoフォームを受け入れるスクリプトをトリガする必要があります。パラメータとしてテキストフィールドの値を設定します。

<form action="/"> 
    <fieldset> 
    <legend>Input Requirements<br></legend> 
    <p> 
     <label>Value A:<br></label> 
     <input type="text" name="val1" value=""> 
    </p> 
    <p> 
     <label>Value B:<br></label> 
     <input type="text" name="val2" value=""> 
    </p> 
    <p> 
     <button id="Submit" > Analyze 
      </button> 
    </p>  
    <p> 
     <label>Result : <br></label> 
     <textarea id="out_string"> {{out_string}} 
     </textarea> 
    </fieldset> 
</form> 

a={{get-val1-from form}} 
b={{get-val2-from-form}} 
def add(a,b): 
    return (a+b) 

私のHTMLフォームは次のようになります。ありがとうございます。

答えて

0

urls.pyユーザーからの入力を送信するパスを定義します。

<form action="{% url 'ans_url' %}" method='POST'> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Analyze"> 
</form> 
を次のように

def answer (request): 
    if request.method == 'POST': 
     form = form_name (request.POST) 
     if form.is_valid(): 
      a = form.cleaned_data['A'] 
      b = form.cleaned_data['B'] 
      ans = your_function(a, b) 
      return render (request, 'ans_template.html', {'ans' : ans}) 
    else : 
     form = form_name() 
    return render (request, 'your_template.html', {'form' : form}) 

def your_function (a, b): 
    #Process 
    return (a+b) 

は、あなたのyour_template.htmlに、フォームを定義することができ、例えば以下のよう

from app_name import views 
path('answer/', views.answer, name = "ans_url"), 

は、その後、あなたのAPP_NAME/views.pyでビューを定義します

まだ混乱している場合は、マニュアルを一度読んでください。これはとてもきれいに説明されています。 https://docs.djangoproject.com/en/2.0/topics/forms/

関連する問題