간단한 등록 양식을 만들기 위해 Flask와 Flask-SQLAlchemy 확장을 사용하고 있습니다. 내 User 클래스에서 "email"속성이 nullable = False로 설정되어 있지만 전자 메일을 포함하지 않고 사이트의 양식을 테스트 할 때 예상대로 예외를 throw하는 대신 새 사용자를 db에 저장합니다. 왜 그런 일이 일어나는 지 아십니까? 보고 주셔서 감사합니다! 여기 Flask-SQLAlchemy nullable = False
코드입니다 :from flask import Flask, url_for, render_template, request, redirect
from flaskext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/kloubi.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(80), unique=True, nullable=False)
fname = db.Column(db.String(80))
lname = db.Column(db.String(80))
def __init__(self, username, email, fname, lname):
self.username = username
self.email = email
self.fname = fname
self.lname = lname
@app.route('/')
def index():
return render_template('index.html')
@app.route('/register/', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
new_user = User(fname = request.form['name'],
lname = request.form['surname'],
email = request.form['email'],
username = request.form['username'])
db.session.add(new_user)
db.session.commit()
return redirect(url_for('index'))
return render_template('register.html')
if __name__ == '__main__':
app.debug = True
app.run(host='0.0.0.0')
아, 알겠습니다. 도와 주셔서 감사합니다. wtforms를 살펴 보겠습니다. – user981023