フラスコのログイン認証

ログイン機能

@ app.route(' /ログイン/ '、メソッド= [ ' GET '' POST ' ])
 デフログイン():
     場合 request.methodは== ' GET ' リターン render_template(' login.htmlと' #のPOSTの 
    ユーザーを= request.form.get(' ユーザ' 
    PWD = request.form.get(' PWD ' であれば、ユーザ== ' トム' そして、 PWD ==123 
        セッション[ ユーザー ] = ユーザーが
         返すリダイレクト(/インデックス/ 返す render_template(login.htmlと、エラー= 口座番号やパスワードを

1、それがビューに直接書かれた決定論理関数である(低いです)

@ app.route(' /インデックス/ ' DEF :インデックス()
     の場合 session.get(' ユーザー' ):
         リターン render_template(' index.htmlを' の戻りリダイレクト(' /ログイン/ '

2、デコレータ(サイトのログを記録するのに適した、より少ない必要性)

デフラッパー(FUNC):
    @wraps(FUNC)
    デフインナー(* argsを、** kwargsから):
         場合 ではない(session.get ' ユーザー' ):
             リターンリダイレクト(' /ログイン/ ' 
        RET = FUNCを(* argsを、* * kwargsからは)
         返すRET
     を返すインナー
@ app.route(' /インデックス/ ' 
@wrapper 
デフインデックス():
    もしsession.get( 'ユーザー'):
         リターンrender_template( 'index.htmlを') 
    リターンリダイレクト( '/ログイン/')
    復帰 render_template(' index.htmlを'

ジャンゴprocess一3、befer_request ===>対応

- * -エンコーディング:UTF-8 - * - 
からフラスコインポートフラスコrender_template、要求、リダイレクトセッション
 から functools インポートラップ
アプリ =フラスコ(__name__ 
app.secret_key = ' ABC ' 


#1 DEFラッパー(FUNC):      @ラップ(FUNC)      デフの内側(* argsを、** kwargsから): #         'ユーザー')をsession.getない場合:
#の             リターンリダイレクト( '/ログイン/')
#1          のRET = funcを(* argsを、** kwargsから)
#の         リターンのRET 
#は     、内側戻ります
@ app.before_request
 DEF AUTH():
     場合 request.path == ' /ログイン/ ' 返さないなし
     場合 session.get(' ユーザーは' ):
         返すなし
     リターンリダイレクト(' /ログイン/ ' 


@ app.route (' /ログイン/ '、メソッド= [ ' GET '' POST ' ])
 デフログイン():
     もし request.method == 'GET ' リターン render_template(' login.htmlと' #のPOSTの 
    ユーザー= request.form.get(' ユーザー' 
    PWD = request.form.get(' PWDを' 場合、ユーザー== ' トム'   PWD == ' 123 ' 
        セッション[ ' ユーザ' ] = ユーザ
         戻りリダイレクト(' /インデックス/ ' リターン render_template(' login.htmlと' =、エラー' 账号或密码错误' 


app.route(@ ' /試験/ ' デフ:試験()
     戻り render_template(' test.htmlという' 


app.route @(' /インデックス/ ' デフインデックス():
    session.get(もし' ':)ユーザー
    #の     リターンrender_template(' index.htmlを') 
    リターンリダイレクト(' /ログイン/ ')
    戻り render_template(' インデックス。HTML "

もし __name__ == ' __main__ ' 
    app.run()

 

おすすめ

転載: www.cnblogs.com/wt7018/p/11599279.html