[英]TypeError: contact() got an unexpected keyword argument 'name' while using flask
I am usig postgreSQL and that's the class I made,我正在使用 postgreSQL 这就是我制作的 class,
class contact(db.Model):
name = db.Column(db.String(120), nullable=False)
email = db.Column(db.String(120), nullable=False)
phone_no = db.Column(db.String, nullable=False)
msg = db.Column(db.String(120), nullable=False)
date = db.Column(db.String(120), nullable=True)
id = db.Column(db.Integer, primary_key=True)
That's the function to add an entry to the database那就是 function 向数据库添加条目
@app.route("/contact", methods=['GET', 'POST'])
def contact():
if (request.method == 'POST'):
'''Add entry to the database'''
Name = request.form.get('Name')
Email = request.form.get('Email')
Phone = request.form.get('Phone_no')
Message = request.form.get('Msg')
entry = contact(name=Name, email=Email, phone_no=Phone, msg=Message, date=datetime.now())
db.session.add(entry)
db.session.commit()
return render_template('contact.html')
That's the error I am getting这就是我得到的错误
Traceback (most recent call last):
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Program Files\Python39\Lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Program Files\Python39\Lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Program Files\Python39\Lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "D:\Flask\Code With Harry\Project_Blog\main.py", line 37, in contact
entry = contact(name=Name, email=Email, phone_no=Phone, msg=Message, date=datetime.now())
TypeError: contact() got an unexpected keyword argument 'name'
Don't know why this is happening.不知道为什么会这样。 Contact.html is:
联系方式。html 是:
<form name="sentMessage" action="/contact" method="POST" id="contactForm" novalidate>
<div class="control-group">
<div class="form-group floating-label-form-group controls">
<label>Name</label>
<input
type="text"
class="form-control"
placeholder="Name"`enter code here`
name="Name"
id="name"
required
data-validation-required-message="Please enter your name."
/>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="control-group">
<div class="form-group floating-label-form-group controls">
<label>Email Address</label>
<input
type="email"
class="form-control"
placeholder="Email Address"
name="Email"
id="email"
required
data-validation-required-message="Please enter your email address."
/>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label>Phone Number</label>
<input
type="tel"
class="form-control"
placeholder="Phone Number"
name="Phone_no"
id="phone"
required
data-validation-required-message="Please enter your phone number."
/>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="control-group">
<div class="form-group floating-label-form-group controls">
<label>Message</label>
<textarea
rows="5"
class="form-control"
placeholder="Message"
name="Msg"
id="message"
required
data-validation-required-message="Please enter a message."
></textarea>
<p class="help-block text-danger"></p>
</div>
</div>
So I wanted to know why I am getting this error as I am beginner and tried to sought out on my own but unfortunately I was unable to do so所以我想知道为什么我是初学者并试图自己寻找这个错误,但不幸的是我无法这样做
You are using the same name "contact" for the Sqlalchemy class:您正在为 Sqlalchemy class 使用相同的名称“联系人”:
class contact(db.Model):
and view function:并查看 function:
def contact():
The Python interpreter is unable to make difference between your class and function. Python 解释器无法区分您的 class 和 function。 Change this latter to (for example):
将后者更改为(例如):
def contact_view():
This should solve your problem.这应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.