Python サーバー プログラミング: Flask-Login を使用してユーザー ログインを実装する
Python サーバー プログラミング: Flask-Login を使用したユーザー ログインの実装
Web アプリケーションの開発と普及により、ユーザー ログインは多くのアプリケーションにとって不可欠な機能になりました。 Python サーバー プログラミングでは、Flask は広く使用されている Web 開発フレームワークです。さらに、Flask はユーザー ログイン機能を迅速に実装するのに役立つ Flask-Login などの多くのサードパーティ拡張機能も提供します。
この記事では、Flask-Login 拡張機能を使用して Python サーバーにユーザー ログイン機能を実装する方法を紹介します。その前に、Flask と Flask-Login 拡張機能をインストールする必要があります。 pip コマンドを使用してインストールできます。
pip install Flask Flask-Login
次に、ユーザー ログイン システムを実装しましょう。
- Flask アプリケーションの作成
まず、Flask アプリケーションを作成する必要があります。ルート ディレクトリに app.py ファイルを作成し、次のコードを記述します:
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "Hello World!" if __name__ == "__main__": app.run(debug=True)
この例では、Flask アプリケーションを作成し、ルートを定義しました。ルート ルートは "Hello World !" を返します。また、 __name__ == "__main__"
条件ステートメントを使用して、スクリプトの実行時にのみ Flask アプリケーションが実行されるようにします。
これで、単純な Flask アプリケーションが正常に作成されました。
2. ユーザー モデルの作成
この例では、ユーザーのユーザー名とパスワードがデータベースに保存されていると仮定します。したがって、ログイン時にユーザーが存在するかどうかを確認できるように、最初にユーザー モデルを定義する必要があります。
次のコードを app.py ファイルに追加します:
from flask_login import UserMixin class User(UserMixin): def __init__(self, id): super().__init__() self.id = id def __repr__(self): return f"<User {self.id}>"
この例では、Flask-Login の UserMixin
クラスを継承する User クラスを定義します。 UserMixin
は、次のようないくつかの便利なプロパティとメソッドを提供します。
-
is_authenticated
: ユーザーが認証されている場合は True。 -
is_active
: ユーザーがアクティブな場合は true。 -
is_anonymous
: ユーザーが認証されていない場合は true。 -
get_id
: ユーザー ID の文字列表現を返します。
User クラスのコンストラクターで、ユーザーの ID を渡します。また、デバッグおよびテスト中にユーザー オブジェクトに関する詳細情報を確認するための __repr__
メソッドも定義します。
- ログイン ビューの作成
次に、ユーザーがユーザー名とパスワードを入力できるようにするログイン ビューを作成する必要があります。ユーザーのユーザー名とパスワードが正しい場合、ログインは成功し、ユーザー オブジェクトが Flask-Login のユーザー セッションに追加されます。
次のコードを app.py ファイルに追加します。
from flask_login import LoginManager, login_user, current_user login_manager = LoginManager() login_manager.init_app(app) @login_manager.user_loader def load_user(user_id): return User(user_id) @app.route("/login") def login(): user_id = request.args.get("user_id") password = request.args.get("password") if user_id and password: # 省略查询数据库的代码 user = User(user_id) login_user(user) return "Login success!" else: return "Login failed!" @app.route("/logout") def logout(): logout_user() return "Logout success!"
この例では、最初に LoginManager
オブジェクトを作成します。次に、ユーザー ID をパラメーターとして受け取り、その ID に対応するユーザー オブジェクトを返す user_loader
コールバック関数を定義します。この例では、新しい User
オブジェクトを作成し、ID をパラメーターとして渡します。
次に、ログイン ビューを定義します。 view 関数では、request.args.get
メソッドを使用して、クエリ文字列からユーザー ID とパスワードを取得します。次に、ユーザー ID とパスワードが有効かどうかを確認します。ユーザーのユーザー名とパスワードが正しい場合、新しい User
オブジェクトが作成され、そのオブジェクトは login_user
関数を使用して Flask-Login のユーザー セッションに追加されます。ユーザーのユーザー名とパスワードが間違っている場合、ユーザーはログインできません。
最後に、ログアウト ビューを定義します。このビューは、logout_user
関数を使用して、Flask-Login のユーザー セッションから現在のユーザー オブジェクトを削除し、ログアウトの成功を示すメッセージを返します。
- 他のビューの保護
ユーザー ログイン システムを実装しましたが、他のビューを保護するためにそれを使用するわけではありません。この例では、ユーザーがログインしている場合にのみアクセスできる「profile」というページを保護します。ユーザーがログインしていない場合は、ログイン ページにリダイレクトされます。
次のコードを app.py ファイルに追加します:
from flask_login import login_required @app.route("/profile") @login_required def profile(): return f"Welcome, {current_user.id}!"
この例では、login_required
デコレータを使用して「profile」ルートを保護します。ユーザーがログインしていない場合、このデコレータはログイン ページにリダイレクトします。
ビューを保護するときは、current_user
グローバル変数を使用して、現在ログインしているユーザーの情報にアクセスします。この例では、現在ログインしているユーザーの ID を含む単純なウェルカム メッセージを追加します。
- アプリケーションの実行
これで、ユーザー ログイン システムのすべての実装が完了しました。アプリケーションを実行してテストしてみましょう。
ターミナルに次のコマンドを入力してアプリケーションを起動します:
python app.py
ブラウザに次の URL を入力してホームページにアクセスします:
http://localhost:5000/
「Hello World」が表示されるはずです。 !" 弦。次に、次の URL にアクセスしてみます。
http://localhost:5000/profile
あなたは認証されたユーザーではないため、ログイン ページにリダイレクトされます。クエリ文字列に有効なユーザー ID とパスワードを入力します。例:
http://localhost:5000/login?user_id=1&password=password123
正しいユーザー名とパスワードを入力すると、「ログイン成功!」というメッセージが表示されます。ここで、「/profile」ルートに再度アクセスすると、現在ログインしているユーザーの ID を含むウェルカム メッセージが表示されるはずです。
如果你在浏览器中访问以下URL,则可以注销当前会话:
http://localhost:5000/logout
这样就完成了用户登录系统的所有实现。
总结
在本文中,我们介绍了如何使用Flask-Login扩展在Python服务器中实现用户登录功能。使用Flask-Login可以方便地验证和保护Web应用程序中的用户数据。此外,Flask-Login提供了许多有用的功能和方法,如会话管理和用户保护。希望这篇文章能够帮助你更好地了解如何使用Flask-Login编写Python服务器应用程序。
以上がPython サーバー プログラミング: Flask-Login を使用してユーザー ログインを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
