達(dá)令說(shuō)
2022-10-25 14:47:52
TypeError: int() 參數(shù)必須是字符串、類(lèi)似字節(jié)的對(duì)象或數(shù)字,而不是 'IntegerField' 這里是錯(cuò)誤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()整個(gè)應(yīng)用程序的想法如下:您有一個(gè)表單,在與 WTFORMS 一起使用的 IntegerField 中輸入 YEAR MONTH 和 DAY,當(dāng)您在該頁(yè)面上單擊 SUBMIT 時(shí),您將被重定向到顯示結(jié)果的頁(yè)面。這聽(tīng)起來(lái)很簡(jiǎn)單,直到我意識(shí)到我不知道如何將我的 IntegerField 數(shù)據(jù)放在一個(gè)整數(shù)變量中,我可以計(jì)算并通過(guò)我的 HTML 文件....
1 回答

冉冉說(shuō)
TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
正如您所指出的,您不希望表單的字段本身,您希望將數(shù)據(jù)與發(fā)布請(qǐng)求一起發(fā)送。
在“/calculator”頁(yè)面上,當(dāng)您單擊提交時(shí),會(huì)向您的服務(wù)器發(fā)送一個(gè)發(fā)布請(qǐng)求,其中包含表單中每個(gè)字段的值的數(shù)據(jù)。現(xiàn)在我不確定它在 Flask 中是如何工作的,但你想找到:
此請(qǐng)求已發(fā)送到您服務(wù)器中的哪個(gè)路由?(在這種情況下可能是“/calculator”,這似乎是唯一接受 POST 請(qǐng)求的路由)
在此路由中,您如何訪問(wèn)發(fā)送給它的請(qǐng)求以及隨它發(fā)送的數(shù)據(jù)?
我建議您首先清楚地了解這些 HTTP 請(qǐng)求是如何工作的(主要是 GET 和 POST)以及它們?cè)谀膽?yīng)用程序中的發(fā)送/接收方式和位置。
添加回答
舉報(bào)
0/150
提交
取消