sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 约束失败:user.words

时间:2021-05-18 02:29:08

标签: python database flask sqlalchemy

我查看了具有相同标题的其他帖子,但它们没有解决我的问题。上面标题中的错误消息是我得到的。 我为数据库制作了一个简单的数据库和构造函数。只是为了测试,我试图将“hello”这个词添加到 User 类的“words”列中。但我不断收到此错误。我已经尝试将 autoincrement 放在 class 列中,但我最终得到了另一个错误。出了什么问题?请看下面的代码。 Python 和 Flask。

from flask import Flask, request, redirect, url_for, render_template
from datetime import datetime
from flask_sqlalchemy import SQLAlchemy
import sqlite3

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE URI"] = 'sqlite:///test.db'
db = SQLAlchemy(app)

class User(db.Model):
    __tablename__ = 'user'
    words = db.Column(db.String(200), primary_key=True)
    
    def __init__(self, thewords):
        self.thewords = thewords

db.create_all()
db.session.commit()

texts = "hello"
textstuffent = User(texts)
db.session.add(textstuffent)
db.session.commit()

results = User.query.all()
print(results)

@app.route('/', methods = ['POST', 'GET'])
def hello():
    return render_template('Textarea.html')

app.run(debug=True)

1 个答案:

答案 0 :(得分:0)

对于以后访问此页面的任何人,我都发现了问题所在。我没有将“words”称为“self.words”。我的代码现在可以工作了,我终于可以继续编码让我松了一口气,这样其他一些错误就会在以后的道路上迷惑我。请参阅下文。您可以在 User 类中看到代码的差异。我用query.all()来证明数据已经进入数据库了。

into