ログイン機能
@ 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()