Python Flask应用程序类型错误:\uuuu init\uuuu()缺少1个必需的位置参数

Python Flask应用程序类型错误:\uuuu init\uuuu()缺少1个必需的位置参数,python,html,postgresql,flask,Python,Html,Postgresql,Flask,我开始使用Flask,并尝试创建一个简单的数据库web应用程序 它呈现2个html模板: show_all.html显示数据库表的数据 new.html这是一种向表中插入数据的表单 show_all.html正确呈现。当我单击new.html上的提交按钮时,我收到以下错误消息: TypeError: __init__() takes 1 positional argument but 2 were given app.py 从烧瓶导入烧瓶、请求、闪存、url、重定向、呈现模板 从flask

我开始使用Flask,并尝试创建一个简单的数据库web应用程序

它呈现2个html模板:

  • show_all.html
    显示数据库表的数据
  • new.html
    这是一种向表中插入数据的表单
show_all.html
正确呈现。当我单击
new.html
上的提交按钮时,我收到以下错误消息:

TypeError: __init__() takes 1 positional argument but 2 were given
app.py

从烧瓶导入烧瓶、请求、闪存、url、重定向、呈现模板
从flask_sqlalchemy导入sqlalchemy
导入psycopg2
DB_URL='postgresql+psycopg2://{user}:{pw}@{URL}/{DB}'。格式(user='********',pw='*****',URL='*****',DB='*****')
app=烧瓶(名称)
app.config['SQLALCHEMY\u DATABASE\u URI']=DB\u URL
db=SQLAlchemy(应用程序)
类别测试(db.Model):
__表_args_uu={“schema”:“saubanerdb”}
id1=db.Column('id1',db.Integer,主键=True)
name1=db.Column(db.String(10))
定义初始化(self,name1,id1):
self.name1=name1
self.id1=id1
@应用程序路径(“/”)
def show_all():
返回呈现模板('show_all.html',tests=test.query.all())
@app.route('/new',methods=['GET','POST'])
def new():
如果request.method==“POST”:
如果不是请求。表格['name1']或不是请求。表格['id1']:
flash('请输入所有字段')
其他:
name1=测试(request.form['name1'])
id1=测试(request.form['id1'])
条目=(名称1,id1)
db.session.add(条目)
db.session.commit()
返回render_模板('new.html')
返回render_模板('new.html')
运行(主机='0.0.0.0',端口=5050)
app.debug=True`
new.html
文件如下所示:







`

有人能帮忙吗

找到了。以下代码起作用,请注意变量“entry”的更改:


为什么您的
\uuuu init\uuuu()
方法在类之外?这是一个错误。现在改了。谢谢你仍然会犯错误。
from flask import Flask, request, flash, url_for, redirect, render_template
from flask_sqlalchemy import SQLAlchemy
import psycopg2

DB_URL = 'postgresql+psycopg2://{user}:{pw}@{url}/{db}'.format(user='*******',pw='******',url='******',db='*****')


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URL
db = SQLAlchemy(app)

class test (db.Model):
    __table_args__ = {"schema":"SaubannerDB"}
    id1 = db.Column('id1', db.Integer, primary_key=True)
    name1 = db.Column(db.String(10))

    def __init__(self, name1, id1):
        self.name1 = name1
        self.id1 = id1

@app.route('/')
def show_all():
    return render_template ('show_all.html', tests=test.query.all())

@app.route('/new', methods=['GET','POST'])
def new():
  if request.method == 'POST':
    if not request.form['name1'] or not request.form['id1']:
        flash ('Please enter all fields')
    else:
        entry = test(request.form['id1'],
                      request.form['name1'])

        db.session.add(entry)
        db.session.commit()
        return render_template('new.html')

  return render_template('new.html')

app.run(host = '0.0.0.0', port = 5050)
app.debug = True