Flask 学習の旅を続けます。今日は flask のログイン管理モジュールを紹介します。前の記事の小さなブログ プロジェクトを覚えていますか? ログインはおそらく次の手順で行われます。
1. ログインボックスにユーザー名とパスワードを入力します2. フラスコビュー関数はユーザーパスワードを取得し、データベース内のユーザー情報を照会して照合します
3. 成功した場合は、セッションに書き込み、ホームページにリダイレクトします
4. 特定のビューにアクセスするためにログインする必要がある場合は、各ビュー機能でユーザーがセッションに存在するかどうかを確認する必要があります。
今日、私たちはブログ プロジェクトの変革を続けています。導入された flask-login モジュールは、ビジネスとはあまり関係のないこれらのパブリック機能を処理するのに役立ちます。
現在アクティブなユーザー ID をセッションに保存し、自由にログインおよびログアウトできるようにします。
ログイン (またはログアウト) ユーザーがアクセスできるビューを制限できます。
厄介な「私を覚えてください」機能への対処。
ユーザー セッションを Cookie の盗難から保護するのに役立ちます。
Flask-Principal または後で使用する可能性のある他の認証拡張機能と統合できます。
1.フラスコログインをインストールします
E:workdirdct-server-5055187src>pip install flask-login
2. フラスコログインを使用する
2.1) /blog2/__init__.py を追加します:
リーリー
リーリー
is_authenticated
ユーザーが認証された場合、つまり有効な証明が提供された場合に True を返します (認証されたユーザーのみが login_required 条件を満たします)。
is_active
これがアクティブなユーザーで検証済みで、アカウントが非アクティブ化ではなくアクティブ化されており、アプリケーションのアカウント拒否条件を満たしていない場合は、 True を返します。非アクティブなアカウントはログインできません (もちろん、強制されない限り)。
is_anonymous
匿名ユーザーの場合は、 True を返します。 (実際のユーザーは False を返す必要があります。)
get_id()
ユーザーを一意に識別し、user_loader コールバックからユーザーをロードするために使用できる Unicode を返します。 Unicode である必要があることに注意してください。ID が元々 int またはその他の型である場合は、それを Unicode に変換する必要があります。
ユーザー クラスを簡単に実装するには、これらすべてのメソッドのデフォルト実装を提供する UserMixin から継承します。ここでは UserMixin を使用して実装します。
2.3) ビュー機能を修正(赤い部分が新規)
flask-login を通じてログインを管理します。コードは非常にシンプルでシンプルです:
logout_user(): ログアウト関数、セッション内のユーザー情報をクリアします
2.4) テンプレートでユーザーを参照する
以前のlayout.htmlおよびshow_entries.htmlテンプレートでユーザーがログインしているかどうかを判断するメソッドをflask-loginのメソッドに変更します:
current_user 値: ユーザーがログインしていない場合、値は 0x0000000003DCF550 の {% if not current_user.is_authenticated() %}
ユーザーがログインした後の値は
【参考資料】
Flask-Login 中国語版: http://www.pythondoc.com/flask-login/#id1
Flask-Login 英語版:http://flask-login.readthedocs.io/en/latest/