11-Flask

Flask(Part.54)| 【管理者が利用するページはサインインが必要とする機能追加】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

  • 管理者の利用するページはサインインが必要にする

サインイン機能の追加

サインイン機能の追加

ここでは、管理者が利用するページに対して、アクセス制限を設け、サインインを必要とする機能を追加します。この作業は、feature-loginブランチを作成して行います。

$ git checkout -b feature-loginコマンド

Flask-Login

Flask-Loginの概要

Flask-Login は、Flask アプリケーションにユーザー認証を簡単に追加するための拡張ライブラリです。このライブラリを使うと、ログイン、ログアウト、セッション管理などの認証関連の機能を簡単に実装できます。主な機能は以下の通りです。

ユーザーの認証
ユーザーがログインしているかどうかを簡単に管理できます。Flask-Login はセッションにユーザー情報を保存し、リクエストが来るたびにその情報を確認します。

ログイン管理
ユーザーがログインする際に、認証情報(通常はユーザーIDやセッション)を保存して、次回のリクエスト時にその情報を復元できます。

ログアウト機能
ユーザーがログアウトしたときにセッションを破棄し、再度認証なしにアクセスできないようにします。

認証が必要なページへのアクセス制限
ログインしていないユーザーがアクセスできないページを制限することができます。

セッション管理
Flask-Login は、セッションにユーザーのログイン状態を保持します。これにより、ユーザーがブラウザを閉じても再度ログインし直す必要がなくなります。

Flask-Loginのインストール

次のコマンドで Flask-Login をインストールします。

pip install flask-login

ユーザーセキュリティアプリケーションに必要なファイル

ユーザーセキュリティアプリケーションに必要なファイルを準備します。ここでは「common」ディレクトリを利用してその中に次のファイルを作成します。

ユーザーセキュリティアプリケーションに利用するファイルの作成

  • static/css/style.css
  • templates/common_base.html
  • templates/dashboard.html
  • templates/login.html
  • templates/register_user.html
  • templates/user_list.html
  • apps.py
  • models.py

ユーザーモデルと認証プログラムの作成

models.py(apps/common内)

開発中のFlaskアプリケーションで、これまでに作成した「commonディレクトリ」にmodels.pyファイルを作成します。models.pyファイルを作成したら次のように入力します。(管理者フラグ付き)

from flask_login import UserMixin

from apps.common.db import db


class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(150), nullable=False, unique=True)
    password = db.Column(db.String(150), nullable=False)
    is_admin = db.Column(db.Boolean, default=False)

    def __repr__(self):
        return f"<User {self.username}>"

app.py(apps/common内)

commonディレクトリにapp.pyファイルを作成して次のように入力します。

この続きはNoteとなります。

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
11-Flask

Flask(Part.25)| 【注文管理アプリケーションのプログラミング(1)】

2025年3月18日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.23)| 【テーブル管理アプリケーションのプログラミング】

2025年3月16日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.42)| 【消費税額管理アプリケーションのプログラミング(1)管理者側】

2025年4月4日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.18)| 【画像のアップロードと利用(実装編)】

2025年3月11日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site