flask-login的使用3

Posted webbky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask-login的使用3相关的知识,希望对你有一定的参考价值。

# coding=utf-8
import flask

app = flask.Flask(__name__)
app.secret_key = super secret string


import flask_login

from flask_login import login_required

login_manager = flask_login.LoginManager()

login_manager.init_app(app)
users = {[email protected]: {pw: secret}}

class User(flask_login.UserMixin):
    pass
@login_manager.user_loader
def user_loader(email):
    if email not in users:
        return

    user = User()
    user.id = email
    return user


@login_manager.request_loader
def request_loader(request):
    email = request.form.get(email)
    if email not in users:
        return 

    user = User()
    user.id = email

    print 123
    user.is_authenticated = request.form[pw] == users[email][pw]
    return user


@app.route(/login, methods=[GET, POST])
def login():
    if flask.request.method == GET:
        return ‘‘‘
               <form action=‘login‘ method=‘POST‘>
                <input type=‘text‘ name=‘email‘ id=‘email‘ placeholder=‘email‘></input>
                <input type=‘password‘ name=‘pw‘ id=‘pw‘ placeholder=‘password‘></input>
                <input type=‘submit‘ name=‘submit‘></input>
               </form>
               ‘‘‘
    email = flask.request.form[email]

    if email not in users:
        print 不存在

    if email in users:
        if flask.request.form[pw] == users[email][pw]:
            user = User()
            user.id = email
            flask_login.login_user(user)
            return flask.redirect(flask.url_for(protected))

    return Bad login


@app.route(/protected)
@flask_login.login_required
def protected():
    return Logged in as:  + flask_login.current_user.id



@app.route(/logout)
def logout():
    flask_login.logout_user()
    return Logged out


@login_manager.unauthorized_handler         # 未登录将会被执行这个函数
def unauthorized_handler():
    return Unauthorized


@app.route(/require)
@login_required
def require():
    return require


if __name__ == __main__:

    app.run(debug=True)

 

以上是关于flask-login的使用3的主要内容,如果未能解决你的问题,请参考以下文章

flask-login模块

使用Flask-Login注册登录

《Flask web开发》笔记5:大型程序的结构&用户认证Flask-Login

[Python][flask][flask-login]关于flask-login中各种API使用实例

Flask-Login 使用和进阶

Flask-login 插件使用