gpt4 book ai didi

python - 类型错误 : __init__() takes 1 positional argument but 3 were given

转载 作者:太空狗 更新时间:2023-10-29 21:23:58 36 4
gpt4 key购买 nike

我知道这个标题对于一些老问题来说看起来很熟悉,但我已经查看了每一个问题,但没有一个能解决。这是我的代码:

TypeError: __init__() takes 1 positional argument but 3 were given

Traceback (most recent call last)
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\hp user\virtual_flask\lib\site-packages\flask\app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\hp user\PycharmProjects\flask123\views.py", line 19, in create
create_post = Post(my_form.title.data, my_form.text.data)
TypeError: __init__() takes 1 positional argument but 3 were given
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.

You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:

dump() shows all variables in the frame
dump(obj) dumps all that's known about the object

我的类(class)如下:

模型.py

from app import db
from datetime import datetime


class Post(db.Model):
post_id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
text = db.Column(db.Text())
created_time = db.Column(db.DateTime())

def __init__(self, title, text, created_time=None):
self.title = title
self.text = text
if created_time is None:
self.created_time = datetime.utcnow()
else:
self.created_time = created_time

View .py

from app import app, db
from flask import render_template, request, url_for
from forms import CreateForm
from models import Post


@app.route('/')
def homepage():
return render_template('base.html')


@app.route('/create', methods=['GET', 'POST'])
def create():
form = CreateForm(csrf_enabled=False)
if request.method == 'GET':
return render_template('create.html', form=form)
if request.method == 'POST':
if form.validate_on_submit():
create_post = Post(form.title.data, form.text.data)
db.session.add(create_post)
db.session.commit()
return redirect(url_for('homepage'))

我已经尝试了所有可能的解决方案并检查了我的代码是否存在拼写错误。但我没有发现任何问题。

最佳答案

错误

TypeError: __init__() takes 1 positional argument but 3 were given

发生在代码处

create_post = Post(my_form.title.data, my_form.text.data)

不是将位置参数传递给 Post 对象的创建,而是传递 keyword arguments :

create_post = Post(title=my_form.title.data, text=my_form.text.data)

关于python - 类型错误 : __init__() takes 1 positional argument but 3 were given,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032078/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com