python - (MySQLdb._exceptions.OperationalError) (1048, "列 'name' 不能为空")
问题描述
我正在测试我的烧瓶网站(正在开发中)的“/contact”端点。联系表单存储用户的“Name”、“Email”和“Message”。每当我在表单中输入任何数据并提交时,都会引发以下错误:
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1048, "Column 'name' cannot be null")
这让我感到惊讶,因为我没有将“名称”列留空:/ 我的问题不是这个重复 我已经完成了所有有助于烧瓶将数据存储在用户在“/联系人”中输入的数据库中的事情'端点。我仍然得到错误。
这是与“联系人”端点相关的代码:-
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
from flask_migrate import Migrate
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://username:password@localhost/database'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
class Contact(db.Model):
sno = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
message = db.Column(db.String(120), nullable=False)
time = db.Column(db.String(12), nullable=True)
email = db.Column(db.String(20), nullable=False)
@app.route('/contact', methods=['GET', 'POST'])
def contact():
if (request.method == 'POST'):
# add entry to the database
name = request.form.get('name')
message = request.form.get('message')
email = request.form.get('email')
entry = Contact(name=name, message=message, time=datetime.now(),email=email )
db.session.add(entry)
db.session.commit()
return render_template("contact.html")
if __name__ == '__main__':
app.run(debug=True)
这是我的 phpmyadmin 数据库: https ://i.paste.pics/AMTV9.png
以下是联系人端点的样子: https ://i.paste.pics/AMXQC.png
错误的回溯:
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1048, "Column 'name' cannot be null")
[SQL: INSERT INTO contact (name, message, time, email) VALUES (%s, %s, %s, %s)]
[parameters: (None, 'Test', datetime.datetime(2020, 11, 9, 20, 8, 48, 2828), 'someone@gmail.com')]
谢谢你。
解决方案
当联系人模型中的字段“name”具有 nullable=False 时,您正尝试插入 name=None 的联系人。
推荐阅读
- filter - JAX-RS ContainerRequestFilter - 修改 QueryParam 的
- laravel - 在 Vue JS 中使用 Watchers 的警报
- python-3.x - 在 Qt 小部件中重新绘制时出现网格线问题
- r - 非标准评估不起作用: h(simpleError(msg, call)) 中的错误
- c# - MySQL 数据 C# MySql.Data.MySqlClient.MySqlException 而 Database.CreateIfNotExists
- rest - 我想在 VB 6.0 应用程序中使用 RESTful API?
- java - Jooq 对反应式应用程序的 R2DBC 支持
- excel - Excel - 对单元格进行编程以根据另一张纸上的另一个单元格更改颜色
- python - discord.ext.commands.errors.ExtensionNotFound:无法加载扩展“cogs.mod”
- angular - 我们可以从 jasmine 测试代码覆盖率中排除特定的角度分量方法吗?