Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption Flask Bcrypt TypeError:ctype'的初始值设定项;字符*';必须是cdata指针,而不是非非类型_Encryption_Flask_Flask Sqlalchemy_Salt_Bcrypt - Fatal编程技术网

Encryption Flask Bcrypt TypeError:ctype'的初始值设定项;字符*';必须是cdata指针,而不是非非类型

Encryption 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

遇到此错误。作为一名业余程序员,我真的很难找出我做错了什么

文件“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.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在数据库中设置正确的密码,但仍引发此错误。所以在某个地方密码被设置为无?你能想到问题是什么吗?