2017-12-06 5 views
-1

から機能するように変数を渡す私はフラスコに新たなんだと私は、ユーザーが何かを提出し、私が入力された値を使用してスクリプトを実行する必要があるWebページを、作ってるんです。Pythonのフラスコ - POSTメソッド

2件の質問

なぜmake_nilが呼び出されないのですか? - 私は同じ値を入力しています。 (:、年齢の年齢 ')または印刷( '年齢:'、年齢)

は、なぜ私はsys.stdoutのを見ませんか?

ありがとうございます!

flask_ager.py:

from flask import Flask, render_template, request 
import sys 
app = Flask(__name__) 

@app.route('/send', methods=['GET', 'POST']) 
def send(): 
    if request.method == 'POST': 
     kapa = request.form['age'] 
     age = make_nil(int(kapa)) 
     sys.stdout('age: ', age) 
     return render_template('age.html', age=age) 
    return render_template('inka.html') 



def make_nil(age): 
    return 0 

if __name__ == "__main__": 
    app.run() 

age.html:

<!DOCTYPE html> 
<html> 
<head> Siker? </head> 
<body> 
<h1> Your age is {{age}} </h1> 
</body> 
</html> 

inka.html:

<!DOCTYPE html> 
<html> 
<head> Siker? </head> 
<body> 
<h1> How old are you? </h1> 
<form method="POST" action="/send"> 
<div class="form_group"> 
<input type="text" name="age"> 
</div> 
<input class="btn btn-primary" type="submit" value="submit"> 
</form> 
</body> 
</html> 
+0

持って、私はこれをテストする途中、私は次の取得しますあなたはあなたのコードがどこに行くか見るためにデバッグを試みましたか? ifステートメントにブレークポイントを設定して、それが入っているかどうかを確認します。また、if文の前にprint(request.method)を実行して、その出力内容を確認してください。 – CodeLikeBeaker

+0

print(request.method)はcmdに何も印刷しません。私がcmdで見る唯一のことは、GET/POST、GET/POST – Marci

答えて

1

Whを

ERROR in app: Exception on /send [POST] 
... 
    File "flask_ager.py", line 10, in send 
    sys.stdout('age: ', age) 
TypeError: 'file' object is not callable 

は、この行は次のようになります:

sys.stdout.write('age: {}'.format(age)) 

は、その行を更新し、再テストはアプリが正しく動作している示しています

enter image description here

関連する問題