TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是 'IntegerField' 这里是错误from flask import Flask, render_templatefrom wtforms import IntegerField, SubmitFieldfrom flask_wtf import FlaskFormimport datetimeapp = Flask(__name__)app.config['SECRET_KEY'] = 'alex'class Calculator(FlaskForm): Year = IntegerField('Year') Month = IntegerField('Month') Day = IntegerField('Day') submit = SubmitField('Calculate')tdy = datetime.date.today()@app.route("/")@app.route("/home")def home(): return render_template('home.html')@app.route("/about")def about(): return render_template('about.html')@app.route("/Calculator", methods=['GET', 'POST'])def days(): form = Calculator() return render_template('calculator.html', form=form)@app.route('/HURRAY', methods=['GET'])def ura(): form = Calculator() y = int(form.Year) m = int(form.Month) d = int(form.Day) till_bday = tdy - datetime.date(y, m, d) return render_template('HURRAY.html', till_bday = till_bday)if __name__ == '__main__': app.run()整个应用程序的想法如下:您有一个表单,在与 WTFORMS 一起使用的 IntegerField 中输入 YEAR MONTH 和 DAY,当您在该页面上单击 SUBMIT 时,您将被重定向到显示结果的页面。这听起来很简单,直到我意识到我不知道如何将我的 IntegerField 数据放在一个整数变量中,我可以计算并通过我的 HTML 文件....
1 回答
冉冉说
TA贡献1877条经验 获得超1个赞
正如您所指出的,您不希望表单的字段本身,您希望将数据与发布请求一起发送。
在“/calculator”页面上,当您单击提交时,会向您的服务器发送一个发布请求,其中包含表单中每个字段的值的数据。现在我不确定它在 Flask 中是如何工作的,但你想找到:
此请求已发送到您服务器中的哪个路由?(在这种情况下可能是“/calculator”,这似乎是唯一接受 POST 请求的路由)
在此路由中,您如何访问发送给它的请求以及随它发送的数据?
我建议您首先清楚地了解这些 HTTP 请求是如何工作的(主要是 GET 和 POST)以及它们在您的应用程序中的发送/接收方式和位置。
添加回答
举报
0/150
提交
取消