【问题标题】:How to allow nullable in Flask framework如何在 Flask 框架中允许为空
【发布时间】:2021-09-12 14:51:34
【问题描述】:

我创建了一个具有以下属性的表:

def complaint():
    if request.method == "GET":
        return render_template("complaint.html")
    if request.method == "POST":
        data = request.form
        data = {
            "name": data.get('name'),
            "number": data.get('number'),
            "address": data.get('address'),
            "content": data.get('content'),
        }
        c = Contact(username=data['name'], number=data['number'], address=data['address'], issues=data['content'])
        db.session.add(c)
        db.session.commit()
        return render_template("complaint.html", error="Success")

但是html显示错误

sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1048, "Column 'address' cannot be null")

我怎样才能实现它?

【问题讨论】:

  • 我不确定应该是nullable 还是blank(或者blank 在Django 中)。也许使用get('address', "") 得到空字符串而不是None 然后你将得到空字符串而不是null
  • 你是如何创建数据库的?您是在 MySQl 中手动创建它还是运行 python 代码来创建它?也许您使用不同的选项创建它,然后在 Flask 代码中使用。
  • 非常感谢!我使用 ('address', "") 它现在可以工作了。我使用 python 代码设置数据库并更改 MySQL 中的一些属性。无论如何,非常感谢!

标签: python flask flask-sqlalchemy


【解决方案1】:

您可以在模型中定义地址列时设置nullable=True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多