サイトアイコン EASY2DIGITAL

PyMongoを使用したFlaskユーザーログインシステム

この記事では、MongoDBのPythonモジュールの1つであるPyMongoを使用して、Flaskユーザーログインシステムを構築する方法について説明します。 統合と開発ロジックはSQLALCHEMYデータベースを使用する場合と類似していますが、MongoDBを使用する場合には一部の設定と設定の詳細が独自かつ異なります。

非SQLデータベースを使用してFlaskユーザーログインシステムを構築し、顧客データベースを管理することをお勧めする場合は、本記事がお役に立つでしょう。

目次:PyMongoを使用したFlaskユーザーログインシステム

SQLALCHEMYをMongoDBユーザーシステムロジックで置き換える

第57章で、SQLAlchemyを使用したユーザーログインシステムのロジックを共有しました。基本的に、そのロジックはMongoDBとPyMongoモジュールを使用してこの記事に適用できます。Flaskモジュールとして必要なもの、例えばログインマネージャーやcurrent_userなども含まれます。基本ロジックに関する詳細については、この記事を参照してください。

MongoDBはJSONベースの非SQLデータベースプラットフォームです。データの呼び出しと応答の方法はSQLベースと異なります。ただし、私の観点からは、SQLよりもはるかに強靭でデータの呼び出しと応答を扱いやすくなっています。

このFlaskユーザーログインシステムを使用する方法は、Pythonチュートリアル66と同じです。MongoDBに保存されたデータを呼び出す方法については、この記事を参照してください。

FlaskアプリケーションでのPyMongoの設定

Pythonチュートリアル66で以前にPyMongoとMongoClientを使用した場合とは異なり、flask-PyMongoモジュールを使用する場合は、Flaskアプリとの構成を設定する必要があります。以下はコードサンプルです。

ステップ1:ターミナルでモジュールをインストールし、モジュールをインポートする

ステップ2:構成と統合

UserMixinを使用してUserクラスを作成する

SQLALCHEMEYデータベースを使用する場合、このセクションの設定はデフォルトで作成されます。一方、MongoDBを使用する場合は、これらを設定する必要があります。このセクションの目的は、ユーザーがサインアップまたはログインした後のユーザーログイン状態を制御することです。それは自動的にユーザーの身元を検出することができ、このユーザーに異なるコンテンツまたはサービスを表示できます。

サインアップ、ログイン、プロフィールページ

前述のように、FlaskのユーザーログインシステムのロジックはSQLALCHEMEYを使用する場合と類似しています。MongoDBを使用する場合の違いが示されています。

サインアップページ

ユーザーが存在するかどうかを検証するために特定のユーザーデータを呼び出すことは、MongoDBがJSONベースの形式であるため異なります。以下にコードのサンプルを示します。

これが新しいユーザーであることを検出したら、私たちは上記で作成したUserクラスを追加する必要があります。これには、クラスの位置引数に新しいユーザーのサインアップ情報を追加することが含まれます。

さらに、デフォルトのMongoDB IDを使用する代わりに、UUIDモジュールを使用してIDを追加することをお勧めします。これは、フォーマットがより直感的で、その後簡単に取得できるためです。

ログインページ

MongoDBでは、find_oneメソッドを使用してデータのヒントの1つを使用してユーザーの完全なデータセットを呼び出します。さらに、データ形式はJSONです。したがって、ユーザーパスワードの検証には、[‘password’]をユーザー変数の後に追加することでMongoDBデータベース内のハッシュ化されたパスワードを呼び出すことができます。

プロフィールページ

プロフィールページでは、顧客関連情報をフロントエンドHTMLページに供給する必要があります。 Userクラスにget_id()を作成し、サインアップセクションで作成したユーザーIDを含めました。Current_userモジュールは自動的にログインしているユーザーを検出できます。ユーザーデータを取得してプロファイルページに表示するには、次のコードをrender_templateで使用できます。

PyMongoを使用したFlaskユーザーログインシステムの完全なPythonスクリプト

Chapter 69 – Build A Flask User Login System Using PyMongoの完全なPythonスクリプトに興味がある場合は、「Chapter 69」というメッセージを追加してニュースレターに登録してください。すぐにスクリプトをメールボックスに送信します。

Chapter 69 – Build A Flask User Login System Using PyMongoを読んで楽しんでいただければ幸いです。もしそうであれば、以下にリストされたいずれかのことを行って、いつも私たちのチャンネルを支援してください。

よくある質問:

Q1: PyMongoとは何ですか?

A: PyMongoはPythonでMongoDBデータベースにアクセスするための公式ドライバーです。

Q2: PyMongoをインストールするにはどうすればよいですか?

A: PyMongoをインストールするには、pipを使用して`pip install pymongo`と入力します。

Q3: PyMongoのバージョンはどうやって確認できますか?

A: PyMongoのバージョンを確認するには、Pythonのインタープリタで`import pymongo`と入力し、`pymongo.__version__`と入力します。

Q4: MongoDBに接続するにはどうすればよいですか?

A: MongoDBに接続するには、PyMongoの`MongoClient`クラスを使用して接続オブジェクトを作成します。

Q5: データベースを作成するにはどうすればよいですか?

A: データベースを作成するには、接続オブジェクトの`database_name`属性を使用してデータベースを作成します。

Q6: コレクションを作成するにはどうすればよいですか?

A: コレクションを作成するには、作成したデータベースオブジェクトの`collection_name`属性を使用してコレクションを作成します。

Q7: データを挿入するにはどうすればよいですか?

A: データを挿入するには、コレクションオブジェクトの`insert_one`または`insert_many`メソッドを使用します。

Q8: データを取得するにはどうすればよいですか?

A: データを取得するには、コレクションオブジェクトの`find`メソッドを使用します。

Q9: データを更新するにはどうすればよいですか?

A: データを更新するには、コレクションオブジェクトの`update_one`または`update_many`メソッドを使用します。

Q10: データを削除するにはどうすればよいですか?

A: データを削除するには、コレクションオブジェクトの`delete_one`または`delete_many`メソッドを使用します。

モバイルバージョンを終了