flask 验证登录问题

class User(db.Model):

__tablename__ = "user"

id = db.Column(db.Integer, primary_key=True, autoincrement=True)

name = db.Column(db.String(100), unique=True)

pwd = db.Column(db.String(510))

addtime = db.Column(db.DateTime, index=True, default=datetime.now)

userlogs = db.relationship("UserLog", backref="user") # 会员日志外键关联

def __repr__(self):

return "<User %r>" % self.name

def check_pwd(self, pwd):

return check_password_hash(self.pwd, pwd)

def login():

form = LoginForm()

if form.validate_on_submit():

data = form.data

user = User.query.filter_by(name = data["name"]).first()

print(user)

print(data)

if user.check_pwd(data['pwd']):

userlog = UserLog(

user_id=user.id,

ip=request.remote_addr

)

db.session.add(userlog)

db.session.commit()

session["name"] = user.name

return redirect(url_for("home.user"))

return render_template("home/login.html", form=form)

flask 验证登录问题
flask 验证登录问题
如图 经过调试我发现,flask 验证登录问题
和数据库是可以连上的,但是user这句出现了问题,导致user打印出来是None,所以导致错误,请问是哪里的问题呀,是不是我数据库的问题?现在的错误是输入任何账号密码都到错误页面,而不是密码验证错误,真是头疼


回答:

pring(data["name"])看下取到用户名没有?另外手动用python shell的方式执行User.query.filter_by(name = "123").first()能正常返回user对象吗?如果还不行debug一下User.query这句代码。


回答:

if user.check_pwd(data['pwd']):判断之前,需要判断user 是不是真的取到了。

if user and user.check_pwd(data['pwd']):

以上是 flask 验证登录问题 的全部内容, 来源链接: utcz.com/p/937981.html

回到顶部