为了账号安全,请及时绑定邮箱和手机立即绑定

无法将表单 IntegerField 转换为整数变量以便在计算日期时使用它

无法将表单 IntegerField 转换为整数变量以便在计算日期时使用它

达令说 2022-10-25 14:47:52
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)以及它们在您的应用程序中的发送/接收方式和位置。


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信