首页 > 解决方案 > sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的列:user.first_name

问题描述

当我尝试将新用户注册到我的网站时,我收到了错误消息。关于如何修复它的任何建议?:以下是错误消息以及我编写的代码

'sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: user.first_name
[SQL: SELECT user.id AS user_id, user.email AS user_email, user.password AS user_password, user.first_name AS user_first_name 
FROM user 
WHERE user.email = ?
 LIMIT ? OFFSET ?]
[parameters: ('jackt@learningpython.com', 1, 0)]
(Background on this error at: http://sqlalche.me/e/14/e3q8)'

@auth.route('/sign-up', methods=['GET', 'POST'])
def sign_up():
    if request.method =='POST':
        first_name = request.form.get('firstName')
        email = request.form.get('email')
        password1 = request.form.get('password1')
        password2 = request.form.get('password2')

        user = User.query.filter_by(email=email).first()
        if user:
            flash('Email already exists.', category='error')
        elif len(first_name) < 2:
            flash('First Name must be greater than 1 character.', category='error')
        elif len(email) < 4:
            flash('Email must be greater than 3 characters.', category='error')
        elif password1 != password2:
            flash('Passwords don\'t match.', category='error')
        elif len(password1) < 7:
            flash('Password must be atleast 7 characters.', category='error')
        else:
            new_user = User(email=email, first_name=first_name, password=generate_password_hash(password1, method='sha256'))
            db.session.add(new_user)
            db.session.commit()
            flash('Account created!', category='success')
            return redirect(url_for('views.home'))

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(150), unique=True)
    password = db.Column(db.String(150))
    first_name = db.Column(db.String(150))
    notes = db.relationship('Note')

标签: pythonsqlalchemy

解决方案


推荐阅读