【问题标题】:TypeError: __init__() takes 1 positional argument but 33 were given (FLASK)TypeError: __init__() 接受 1 个位置参数,但给出了 33 个(FLASK)
【发布时间】: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


【解决方案1】:

谢谢,解决了! 是缩进的问题

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 2017-04-22
    • 2018-06-21
    • 2014-11-12
    • 1970-01-01
    • 2017-10-09
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多