【发布时间】:2021-03-02 23:36:32
【问题描述】:
我正在使用 Python 进行开发,我正在使用 Flask 和 SLQAlchemy,但是在提交表单时出现错误。 这是我的代码:
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
app = Flask(__name__)
#DB configuration
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:password@localhost/db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class form_filled(db.Model):
__tablename__ = 'form_filled'
idregister = db.Column(db.Integer, primary_key=True)
username = db.Column(db.Text())
q1 = db.Column(db.Text())
q2 = db.Column(db.Text())
q3 = db.Column(db.Text())
q4 = db.Column(db.Text())
dano = db.Column(db.Text())
q5 = db.Column(db.Text())
q6 = db.Column(db.Text())
q7 = db.Column(db.Text())
q8 = db.Column(db.Text())
q9 = db.Column(db.Text())
q10 = db.Column(db.Text())
q11 = db.Column(db.Text())
q13 = db.Column(db.Text())
q14 = db.Column(db.Text())
q15 = db.Column(db.Text())
q16 = db.Column(db.Text())
q17 = db.Column(db.Text())
q18 = db.Column(db.Text())
q19 = db.Column(db.Text())
q20 = db.Column(db.Text())
q21 = db.Column(db.Text())
q22 = db.Column(db.Text())
q23 = db.Column(db.Text())
q24 = db.Column(db.Text())
q25 = db.Column(db.Text())
q26 = db.Column(db.Text())
q27 = db.Column(db.Text())
q28 = db.Column(db.Text())
q29 = db.Column(db.Text())
q30 = db.Column(db.Text())
registered_date = db.Column(db.DateTime)
def __init__(self, username, q1, q2, q3, q4, dano ,q5, q6, q7, q8, q9,
q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22,
q23, q24, q25, q26, q27, q28, q29, q30,registered_date):
#now = datetime.now()
self.username = username
self.q1 = q1
self.q2 = q2
self.q3 = q3
self.q4 = q4
self.dano = dano
self.q5 = q5
self.q6 = q6
self.q7 = q7
self.q8 = q8
self.q9 = q9
self.q10 = q10
self.q11 = q11
#self.q12 = q12
self.q13 = q13
self.q14 = q14
self.q15 = q15
self.q16 = q16
self.q17 = q17
self.q18 = q18
self.q19 = q19
self.q20 = q10
self.q21 = q21
self.q22 = q22
self.q23 = q23
self.q24 = q24
self.q25 = q25
self.q26 = q26
self.q27 = q27
self.q28 = q28
self.q29 = q29
self.q30 = q30
self.registered_date = registered_date
@app.route('/')
def home():
return render_template('home.html')
@app.route('/about')
def about():
return render_template('about.html')
@app.route('/success', methods=['GET','POST'])
def success():
if request.method=='POST':
username=request.form.get("username")
q1=request.form.get("q1", "")
q2=request.form.get("q2", "")
q3=request.form.get("q3", "")
q4=request.form.get("q4", "")
dano=request.form.get("tb1", "")
q5=request.form.get("q5", "")
q6=request.form.get("q6", "")
q7=request.form.get("q7", "")
q8=request.form.get("q8", "")
q9=request.form.get("q9", "")
q10=request.form.get("q10", "")
q11=request.form.get("q11", "")
q12=request.form.get("q13", "")
q13=request.form.get("q14", "")
q14=request.form.get("q15", "")
q15=request.form.get("q16", "")
q16=request.form.get("q17", "")
q17=request.form.get("q18", "")
q18=request.form.get("q19", "")
q19=request.form.get("q20", "")
q20=request.form.get("q21", "")
q21=request.form.get("q21", "")
q22=request.form.get("q22", "")
q23=request.form.get("q23", "")
q24=request.form.get("q24", "")
q25=request.form.get("q25", "")
q26=request.form.get("q26", "")
q27=request.form.get("q27", "")
q28=request.form.get("q28", "")
q29=request.form.get("q29", "")
q30=request.form.get("options", "")
if (username=='' or q1=='' or q2=='' or q3=='' or q4=='' or q5=='' or q6=='' or
q7=='' or q8=='' or q9=='' or q10=='' or q11=='' or q13=='' or q14=='' or
q15=='' or q16=='' or q17=='' or q18=='' or q19=='' or q20=='' or q21=='' or
q22=='' or q23=='' or q24=='' or q25=='' or q26=='' or q27=='' or q28=='' or
q29==''):
return render_template('home.html', message='Please, select all the options')
else:
data = form_filled(username, q1, q2, q3, q4, dano ,q5, q6, q7, q8, q9,
q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22,
q23, q24, q25, q26, q27, q28, q29, q30)
db.session.add(data)
db.session.Commit()
#print(q1,q2,q3,q4,dano)
#print(request.form)
return render_template('success.html')
if __name__ == '__main__':
app.run(debug=True)
我收到此错误:
TypeError: init() 接受 1 个位置参数,但给出了 33 个
另外我不知道如何插入当前日期的记录(如 datenow),我使用的是 Postgresql 如果你愿意帮助我,因为我在这方面已经很长时间了,我不知道问题是什么
【问题讨论】:
-
我认为您的
__init__()缩进不正确。另外我建议考虑一下 - 在__init__()中有 33 个位置参数是个好主意吗? -
谢谢,解决了!
标签: python postgresql flask sqlalchemy flask-sqlalchemy