python flask - 从post方法

时间:2017-12-06 22:02:17

标签: python html flask

我是新手,我正在创建一个网页,用户提交了一些内容,我需要使用输入的值运行脚本。

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>

1 个答案:

答案 0 :(得分:1)

当我测试时,我得到以下内容:

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