python - TypeError:“ImmutableMultiDict”对象不可调用(Python、Flask、Sqlite)
问题描述
我是编程新手,我正在尝试使用 Python 中的 Flask 制作注册程序。我使用烧瓶作为框架在 HTML 中制作了一个表单。我希望将表单中的信息保存在数据库中,以便我们查看谁注册了。我使用 SQLALchemy 和 SQlite 进行数据库设置。当我想提交表单以保存数据(来自 webbrowser 中的页面)时,我收到以下错误:“TypeError: 'ImmutableMultiDict' object is not callable”
这是我的 HTML 代码:
{% block body %}
<form action="/", method="POST">
<div class="container">
<h1>Gasten registratie</h1>
<p>Vul dit formulier in om te registreren</p>
<hr>
<label for="First-Name"><b>Voornaam</b></label>
<input type="text" id="First-Name" placeholder="Vul hier uw voornaam in" name="Voornaam" required>
<label for="Last-Name"><b>Achternaam</b></label>
<input type="text" id="Last-Name" placeholder="Vul hier uw achternaam in" name="Achternaam" required>
<label for="Company-name"><b>Bedrijf</b></label>
<input type="text" id="Company-name" placeholder="Vul hier uw bedrijfsnaam in" name="Bedrijfsnaam" required>
<label for="Date"><b>Datum</b></label>
<input type="date" id="Date" placeholder="Selecteer de Datum" name="date" required/>
<hr>
<p>In het kader van onze ISAE certificering registreren wij uw gegevens.</p>
<p>Wij verwerken uw gegevens volgends de regels van het AVG.</p>
<button type="submit" class="registerbtn">Registreren</button>
</div>
</form>
{% endblock %}
这是我的 Python 代码:
from flask import Flask, render_template, url_for, request
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime'''
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///guest.db'
db = SQLAlchemy(app)
class gast(db.Model):
id = db.Column(db.Integer, primary_key=True)
voornaam = db.Column(db.String(15), nullable=False)
achternaam = db.Column(db.String(15), nullable=False)
bedrijfsnaam = db.Column(db.String(50), nullable=False)
datum = db.Column(db.Date)
date_created = db.Column(db.Date, default=datetime.utcnow)
def __repr__(self):
return '<gast %r>' % self.voornaam
@app.route('/', methods=['POST','GET'])
def index():
if request.method == 'POST':
guest_vnaam = request.form('First-Name')
guest_anaam = request.form('Last-Name')
guest_cnaam = request.form('Company-name')
guest_datum = request.form('Date')
safe_vnaam = gast(voornaam=guest_vnaam)
safe_anaam = gast(achternaam=guest_anaam)
safe_cnaam = gast(bedrijfsnaam=guest_cnaam)
safe_datum = gast(datum=guest_datum)
try:
db.session.add(safe_vnaam, safe_anaam, safe_cnaam, safe_datum)
db.session.commit()
return redirect('/')
except:
return 'Er ging iets fout met het opslaan van uw gegevens'
else:
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
谁能帮我弄清楚我做错了什么或忘记了什么?提前致谢
解决方案
推荐阅读
- neo4j - 如何将列表传递给 Py2neo 密码查询
- kubernetes - 如何在 Kubernetes 中修补 ConfigMap
- android - 是否有验证电话号码是否属于具体国家/地区的模式?
- join - Pyspark:将数据框值添加到指定列中的每个不同值
- sql - MS Access 2010 使用列表框多选修改子表单
- woocommerce - 如何为用户帐户添加使用 acf 创建的自定义字段以显示在 woocommerce 的结帐表单中
- arduino-uno - Nextion显示-波形时标
- php - 测试依赖项和测试 get 和 setter 在一起
- xamarin - 从后面的代码中为按钮设置 HelpText 在 Xamarin.Forms 中不起作用
- python-3.x - 写出netcdf文件时如何阻止xarray自动更改时间属性?