Encryption Flask Bcrypt TypeError:ctype'的初始值设定项;字符*';必须是cdata指针,而不是非非类型
遇到此错误。作为一名业余程序员,我真的很难找出我做错了什么 文件“C:\Users.virtualenvs\flask\lib\site packages\bcrypt\uuuuu init\uuuuuuuuuu.py”,第63行,在hashpw中 retval=\u bcrypt.lib.crypt\u rn(密码、salt、散列、len(散列)) TypeError:ctype“char*”的初始值设定项必须是cdata指针,而不是非非类型 Models.pyEncryption Flask Bcrypt TypeError:ctype'的初始值设定项;字符*';必须是cdata指针,而不是非非类型,encryption,flask,flask-sqlalchemy,salt,bcrypt,Encryption,Flask,Flask Sqlalchemy,Salt,Bcrypt,遇到此错误。作为一名业余程序员,我真的很难找出我做错了什么 文件“C:\Users.virtualenvs\flask\lib\site packages\bcrypt\uuuuu init\uuuuuuuuuu.py”,第63行,在hashpw中 retval=\u bcrypt.lib.crypt\u rn(密码、salt、散列、len(散列)) TypeError:ctype“char*”的初始值设定项必须是cdata指针,而不是非非类型 Models.py class User(db.M
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
nickname = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True, unique=True)
password = db.Column(db.String(100))
posts = db.relationship('Post', backref='author', lazy='dynamic',
primaryjoin="User.id==Post.user_id")
about_me = db.Column(db.String(140))
last_seen = db.Column(db.DateTime)
followed = db.relationship('User',
secondary=followers,
primaryjoin=(followers.c.follower_id == id),
secondaryjoin=(followers.c.followed_id == id),
backref=db.backref('followers', lazy='dynamic'),
lazy='dynamic')
#reviews = db.relationship('Review', backref='author', lazy='dynamic') This is the review connectino for the user.
@hybrid_property
def password_hash(self):
return self.password
@password_hash.setter
def set_password(self, plaintext):
self.password = bcrypt.generate_password_hash(plaintext)
def is_correct_password(self, plaintext):
return bcrypt.check_password_hash(self.password, plaintext)
Views.py
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(nickname=form.nickname.data).first_or_404()
if user.is_correct_password(form.password.data):
login_user(user)
flash("you've been logged in!, 'success'")
return redirect(url_for('index'))
else:
flash('your email or password doesnt match!', 'error')
return redirect(url_for('login'))
return render_template('login.html',
title='Sign In',
form=form)
用户的密码似乎不可靠,因为我输入了我设置的密码。是否还有其他原因导致此问题?请尝试注册,然后使用上述代码登录。100在数据库中设置正确的密码,但仍引发此错误。所以在某个地方密码被设置为无?你能想到问题是什么吗?