[英]Cannot login with flask flask_login
我创建了注册协议并且它有效但是在登录时,它总是检查登录是否正确。 我使用 sqlite3,没有太多额外的代码,我把它们都放在 main.py 代码中 这是我的 main.py 代码
db = SQLAlchemy(main)
db.init_app(main)
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(100), nullable=False, unique=True)
password = db.Column(db.String(100), nullable=False)
login_manager = LoginManager()
login_manager.login_view = 'login'
login_manager.init_app(main)
@main.route('/login')
def login():
return render_template('login.html')
@main.route('/login', methods=['POST'])
def login_post():
email = request.form.get('email')
password = request.form.get('password')
user = User.query.filter_by(email=email).first()
if not user and password != user.password:
flash('Please check your login details and try again.')
return redirect(url_for('login'))
login_user(user)
return redirect(url_for('profile'))
这是 HTML
<form method="POST" action="/login">
<div class="field">
<div class="control">
<input class="input is-large" type="email" name="email" placeholder="Your Email" autofocus="">
</div>
</div>
<div class="field">
<div class="control">
<input class="input is-large" type="password" name="password" placeholder="Your password">
</div>
</div>
<button class="button is-block is-info is-large is-fullwidth">Login</button>
</form>
逻辑错误。
- if not user and password != user.password:
+ if not user or password != user.password:
flash('Please check your login details and try again.')
return redirect(url_for('login'))
抱歉,stackoverflow 编辑器不支持差异语法。 -
表示应删除该行, +
表示应添加该行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.