sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 제약 조건 실패: user.words (sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.words)


문제 설명

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 제약 조건 실패: user.words (sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.words)

같은 제목의 다른 게시물을 보았지만 문제가 해결되지 않았습니다. 위 제목의 오류 메시지는 내가 얻는 것입니다. 저는 간단한 데이터베이스와 데이터베이스 생성자를 만들었습니다. 테스트를 위해 "hello"라는 단어를 추가하려고 합니다. "단어" 열에 클래스 사용자에서. 하지만 이 오류가 계속 발생합니다. 이미 클래스 열에 자동 증가를 넣으려고 시도했지만 결국 다른 오류가 발생했습니다. 무슨 일이야? 아래 코드를 참조하십시오. 파이썬과 플라스크.

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)
</code></pre>


참조 솔루션

방법 1:

For anyone who visits this page in the future, I've found what was wrong. I did not reference "words" as "self.words". My code now works and I am relieved to finally continue coding so that some other bug can confound me later down the road. Please see below. You can see the difference in code in the User class. I used query.all() to prove that data has made it into the database.

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):    
    words = db.Column(db.String(200), primary_key=True, nullable=False)

    def __init__(self, thewords):
        self.words = thewords

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

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

print(User.query.all())

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

app.run(debug=True)

(by Get Over HereGet Over Here)

참조 문서

  1. sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.words (CC BY‑SA 2.5/3.0/4.0)

#SQLAlchemy #Python #Flask #Database






관련 질문

타임스탬프 열에서 연도만 검색하는 방법은 무엇입니까? (How to retrieve only the year from timestamp column?)

SQLAlchemy: 'in_'에 대한 필터는 효과가 없습니다. (SQLAlchemy: Filter on 'in_' has no effect)

sqlalchemy 쿼리 필터에 변수를 추가하고 문자열 쿼리로 변환하려면 어떻게 합니까? (How do I add a variable to a sqlalchemy query filter and convert it to a string query?)

자동 플러시를 비활성화하고 자동 커밋이 작동하지 않는 후 Flask sqlAlchemy (Flask sqlAlchemy after disable autoflush and autocommit not working)

R과 반짝이는 다층 테이블을 만드는 방법은 무엇입니까? (How to make multiple layered table form with R and shiny?)

sqlalchemy.exc.OperationalError 식별 (Identifying sqlalchemy.exc.OperationalError)

ImportError: 'PY2' 이름을 가져올 수 없습니다. (ImportError: cannot import name 'PY2')

SQLAlchemy: 부분적으로 지정된 관계 (SQLAlchemy: partially specified relationship)

SQLAlchemy를 사용하여 데이터베이스의 기존 테이블에 연결 (Connect to existing tables in database using SQLAlchemy)

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 제약 조건 실패: user.words (sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.words)

날짜 시간에 대한 ValidationError (ValidationError for datetime)

pytest에서 SAWarning을 무시하는 방법 (How to ignore SAWarning in pytest)







코멘트