繁体   English   中英

无法使用 flask flask_login 登录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM