Flask用のバックエンドを構築する方法は?
このチュートリアルでは、 Flaskのバックエンドを構築する方法を学びます。
Flaskは軽量の バックエンドフレームワークで、HTTPリクエストを簡単に処理し、開発中は デバッグモードで効率的に動作します。
データベース管理、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリ(ライブクエリ)など、Back4Appの重要な機能を統合して、あなたの Flaskアプリケーションのために安全でスケーラブル、かつ堅牢なバックエンドを作成する方法を説明します。
また、Back4Appの迅速なセットアップと直感的な環境が、サーバーやデータベースを手動で設定するのに比べて、時間と労力を大幅に削減できることを確認します。
FlaskをBack4AppのParseサーバーに接続するためにPythonコードを使用します。その過程で、先進的なセキュリティ機能、Cloud Jobsを使用したタスクのスケジューリング、外部統合のためのWebhookの設定など、主要な機能を実践的に体験します。
このチュートリアルの終わりまでには、この基本的なセットアップを本番環境に適したアプリケーションに拡張する準備が整い、必要に応じてカスタムロジックやサードパーティAPIを簡単に組み込むことができるようになります。
このチュートリアルを完了するには、次のものが必要です:
- 基本的なFlask開発環境 Flaskは pip install flask を使用してインストールできます。マシンにPython 3.7以上がインストールされていることを確認してください。
- pip install parse このPythonパッケージを使用すると、FlaskアプリがBack4AppのParse Serverと対話できます。
始める前に、これらの前提条件がすべて整っていることを確認してください。Back4appプロジェクトが設定され、ローカルのFlask環境が準備されていると、より簡単に進めることができます。
Back4AppでFlaskバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。まだ作成していない場合は、次の手順に従ってください:
- Back4Appアカウントにログインする.
- Back4Appダッシュボードで「新しいアプリ」ボタンをクリックする.
- アプリに名前を付ける(例:「Flask-Backend-Tutorial」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
プロジェクトが作成されると、Back4appダッシュボードにリスト表示されます。このプロジェクトは、すべてのバックエンド設定の基盤となります。
Back4Appは、データを管理し、リアルタイム機能を提供し、ユーザー認証を処理するためにParseプラットフォームに依存しています。
FlaskアプリケーションをBack4Appに接続するには、parse Pythonパッケージをインストールし、Back4Appダッシュボードからの資格情報で初期化する必要があります。
Parseキーを取得する: Back4Appダッシュボードで、アプリの「アプリ設定」または「セキュリティとキー」セクションに移動して、アプリケーションIDとクライアントキー(必要に応じてREST APIキー)を見つけます。また、ParseサーバーURL(通常はhttps://parseapi.back4app.comの形式)も見つけることができます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Parse Python SDKをインストールするには、Flask環境で次のコマンドを実行します:
FlaskアプリケーションでParseを初期化する: ファイル(例:parse_config.py)をappというディレクトリに作成するか、バックエンドモジュールを保存している場所に作成します:
次に、メインのFlaskアプリファイル(例: app.py)で、Parse設定とともに import flask app flask モジュールをインポートできます:
このステップを完了することで、FlaskフロントエンドルートとBack4Appバックエンドの間に安全な接続が確立されました。すべてのリクエストとデータトランザクションは、Parse Pythonコードを介して安全にルーティングされ、手動のRESTまたはGraphQL呼び出しの複雑さが軽減されます(必要に応じてそれらを使用することもできます)。
始める前に、データベースの設定について話しましょう。Back4Appダッシュボードでデータスキーマを設計するか、Parseに即座に作成させることができます。たとえば、「Todo」という名前のクラスを作成し、 title と isCompleted のようなフィールドを追加することができます。
- Back4Appダッシュボードの「データベース」セクションに移動します。
- 新しいクラスを作成します。(例:「Todo」)およびタイトル(String)やisCompleted(Boolean)などの関連列を追加します。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4appは、次のようなさまざまなデータ型をサポートしています: String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, そして Polygon. 各フィールドに適切な型を選択できます。
自動化されたアプローチを好む場合は、Back4appのAIエージェントを使用することもできます:
- アプリダッシュボードから AIエージェント を開きます。
- データモデルを簡単な言葉で説明します (例: “Back4appでタイトルとisCompletedフィールドを持つToDoクラスを作成します。”)
- AIエージェントにスキーマを作成させます .
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Flaskでは、次のように parse をインポートすることでデータを作成および取得できます: parse_config.py の初期化:
このFlaskアプリファイル httpリクエストを処理します あなたのBack4Appデータベース内のTodoアイテムを作成および読み取るために。
直接REST呼び出しを好む場合は、 curl を使ってテストできます コマンドラインから:
同様に、Back4appはGraphQLエンドポイントを提供します。例えば:
必要な場合は、リアルタイム更新を提供します。Back4appはライブクエリを提供しています。Flaskのシナリオでは、通常、Back4AppのライブクエリサーバーへのWebSocket接続を維持できる別のクライアントサイドまたはサーバーサイドのサブスクリプションライブラリを使用します。
- ライブクエリを有効にするには、アプリのサーバー設定の下でBack4appダッシュボードを使用します。
- Parse LiveQueryクライアントを使用するには、wss://YOUR_SUBDOMAIN_HERE.b4a.ioに接続し、作成/更新/削除イベントをリッスンします。
Back4appは、アクセス制御リスト(ACL)とクラスレベルの権限(CLP)を提供してデータを保護します。ACLは個々のオブジェクトに適用され、CLPはクラス全体に適用されます。これにより、ユーザー、役割、または一般公開に対して読み取り/書き込み操作を制限または許可できます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Back4appダッシュボードに移動する, アプリを選択し、データベースセクションを開きます。
- クラスを選択する(例:「Todo」)。
- クラスレベルの権限タブを開きます。
- 「認証が必要」や「アクセス不可」などのデフォルトを設定します。
PythonコードでACLを適用できます:
クラウドコードは、pythonコード(他のシナリオではJavaScript)をサーバーサイドで実行するのに最適です。自分のインフラをホストする必要がありません。データの検証、複雑な計算の実行、またはParseサーバーから直接外部サービスとの統合などのタスクを実行できます。
Back4AppのデフォルトのCloud Code環境はNode.jsを使用しているため、Cloud CodeはJavaScriptで記述します。ただし、Flaskアプリからこれらのサーバーサイドスクリプトをトリガーすることはできます。たとえば、Node.jsのCloud Functionは次のようになります:
Cloud Codeをデプロイするには、Back4app CLIを使用します:
また、JSコードをCloud Code > Functionsに貼り付けて「デプロイ」をクリックすることで、Back4appダッシュボード経由でデプロイすることもできます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Flaskでは、RESTを使用してそのクラウド関数を呼び出すことができます:
Back4Appはデフォルトで User クラスを利用します。Parseはパスワードのハッシュ化、セッショントークン、セキュアストレージを処理します。これらの機能は App Settings で管理できます。
Back4AppとParseは、Google、Apple、Facebookなどのソーシャルプロバイダーと統合できます。設定の詳細は異なるため、公式の Parseソーシャルログインドキュメントを参照してください。
FlaskからParseデータベースにファイルをアップロードするには、Nodeベースの環境で parse.File() オブジェクトを作成するか、Pythonから直接REST呼び出しを使用できます。これらのファイルへの参照をクラスに保存すると、簡単に取得できるようになります。
ファイルをアップロードした後、データベースに保存できるファイルURLが受け取れます。その後、必要に応じてそのファイルを htmlテンプレートでレンダリングまたは参照できます。
メール確認は有効なメールアドレスを保証し、パスワードリセットはユーザーが安全にアカウントにアクセスできるようにします。
- Back4Appダッシュボードのメール設定に移動します。
- メール確認を有効にすると、メールテンプレートを設定する。
- パスワードリセットを有効にすることで、ユーザーのメールにパスワード回復リンクを送信します。
有効にすると、メールでサインアップする新しいユーザーは確認リンクを受け取ります。パスワードリセットについては、REST経由またはFlaskルートからParseの組み込みメソッドを呼び出すことができます。
クラウドジョブを使用すると、データのクリーンアップや定期的なメール送信などのバックグラウンドタスクをスケジュールできます。たとえば、ユーザーの介入なしに毎日古いレコードを削除できます。
次に、Back4Appダッシュボードから:
- アプリ設定に移動 > サーバー設定 > バックグラウンドジョブ.
- このジョブを毎日または希望の間隔で実行するようにスケジュールします。
![クラウドジョブのスケジューリング クラウドジョブのスケジューリング](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Webhooks は、特定のトリガーが発生したときに、Back4appアプリが外部サービスにデータを送信できるようにします。これは、決済ゲートウェイ、Slack、分析、またはその他のサードパーティサービスとの統合に役立ちます。
- Webhooksの設定 に移動します。Back4Appダッシュボード > その他 > WebHooks。
- 新しいWebhookを追加します。
- トリガーを選択 します。Webhookが発火するトリガーです。
![Webhookの追加 Webhookの追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
「Todo」に新しいレコードが作成されるたびにSlackチャンネルに通知したい場合は、SlackのWebhook URLを設定します。次に、新しいTodoが保存されるたびに、Slackはその詳細を含むPOSTリクエストを受信します。
この Back4App管理アプリ は、チームの非技術的メンバー向けにユーザーフレンドリーなインターフェースを提供します。これは、CRUD操作やエンタープライズレベルのタスクのための モデル中心 インターフェースです。
- アプリダッシュボードに移動する.
- 選択する その他 > 管理者アプリ を有効にします。
- 管理者ユーザーを作成し、パネルをホストするサブドメインを選択します。
![管理者アプリを有効にする 管理者アプリを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/_2b71RLDTlQW468017saY_image.png?format=webp)
有効にすると、管理者の資格情報を使用してログインし、カスタムエンドポイントやクエリをPythonコードに書くことなく、データをより便利に管理できます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
この包括的なチュートリアルに従うことで、あなたは:
- 安全なバックエンドをBack4App上のFlaskアプリのために作成しました。
- データベースを構成しました クラススキーマ、データ型、関係を使用して。
- リアルタイムクエリを統合しました (ライブクエリ)で即時データ更新を実現しました。
- セキュリティ対策を適用しました ACLとCLPを使用してデータアクセスを保護および管理しました。
- Cloud Codeを実装しました サーバー側でカスタムビジネスロジックを実行するための関数。
- ユーザー認証を設定しました メール確認とパスワードリセットをサポートしています。
- ファイルのアップロードを管理しました オプションのファイルセキュリティコントロール付きで。
- Cloud Jobsをスケジュールしました 自動化されたバックグラウンドタスクのために。
- Webhookを使用しました 外部サービスと統合するために。
- Back4App管理パネルを探索しました データ管理のために。
堅牢なFlask バックエンドフレームワーク があり、テンプレートを返す ファイル(必要に応じて)と強力なBack4Appのセットアップがあれば、機能豊富でスケーラブルかつ安全なアプリケーションを開発する準備が整いました。
あなたは flask run コマンドを実行して 開発サーバー を起動し、コーディングを続けることができます。
コマンドライン タスクは メソッドの定義後 JSONペイロードを受け入れるルートで簡単になります。
- 生産準備が整ったFlaskアプリを構築する このバックエンドを拡張して、より複雑なデータモデル、キャッシング戦略、パフォーマンス最適化を処理します。
- 高度な機能を統合する 専門的な認証フロー、役割ベースのアクセス制御、または外部API(支払いゲートウェイなど)を含みます。
- Back4appの公式ドキュメントを確認する 高度なセキュリティ、パフォーマンス調整、ログ分析についての詳細な情報を得るために。
- 他のチュートリアルを探る リアルタイムチャットアプリケーション、IoTダッシュボード、または位置情報ベースのサービスに関するものです。ここで学んだ技術をサードパーティのAPIと組み合わせて、複雑な実世界のアプリケーションを作成できます。
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)