python - 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')
解决方案
推荐阅读
- swift - 视频缩略图被颠倒了
- sql-server - 我无法让我的 Microsoft SQL Server 触发器正常运行
- forms - 使用 yup 和自定义验证来验证 react-final-form 表单
- vue.js - 如何将 BootstrapVue 在 Nuxt.js 中使用 Purgecss 所需的所有内容列入白名单
- pandas - 在熊猫中将重复的索引合并为一个
- python - 从 QValidator 获得视觉反馈
- scala - NoClassDefFoundError:org/apache/hadoop/hbase/spark/datasources/JavaBytesEncoder$
- powershell - For loop CSV - 使用 Powershell 2.0 应用文件夹权限
- mysql - 通过 Spring Boot 应用程序连接到远程数据库
- timestamp - Presto 将没有时区的时间戳转换为纪元