Quickstarters
Feature Overview
How to Build a Backend for Python?
36 分
はじめに このステップバイステップのチュートリアルでは、back4appを使用してpythonアプリケーションの完全なバックエンドを構築する方法を学びます。 データベース管理、cloud code functions、restおよびgraphql api、ユーザー認証、リアルタイムクエリなど、back4appの重要な機能を統合する方法を説明し、pythonコードとシームレスに通信する安全でスケーラブル、かつ堅牢なバックエンドを作成します。 pythonは、シンプルさとサーバーサイドの管理の容易さを提供するため、バックエンド開発においてプログラミング言語の中で人気の選択肢です。 djangoやflaskなどのフレームワークやライブラリは、長い間pythonをウェブ開発プロセスの定番にしてきました。 back4appを活用することで、python開発者はデータベーススキーマを迅速に設定し、データの整合性を確保し、複雑なインフラを管理することなく機械学習タスクを組み込むことができます。 その過程で、高度なセキュリティ機能、cloud jobsによるタスクのスケジューリング、外部統合のためのwebhookの設定など、重要な機能に関する実践的な経験を得ることができます。 このチュートリアルの終わりまでには、この基盤構造を生産準備が整ったpythonバックエンドアプリケーションに拡張するか、プロジェクトがスケールする際にdockerやkubernetesなどの他のツールと簡単に統合できるようになります。 これは、信頼できるプラットフォームと堅牢なpythonライブラリを使用して、あなたのpythonバックエンド開発の旅をスタートさせるでしょう。 前提条件 このチュートリアルを完了するには、次のものが必要です back4appアカウントと新しいback4appプロジェクト back4appの始め方。 https //www back4app com/docs/get started/new parse app まだサインアップしていない場合は無料でサインアップし、新しいプロジェクトを作成してください。 python 3 xがインストールされていること マシンにpython 3 xがセットアップされていることを確認してください。 pythonをダウンロード。 https //www python org/downloads/ parse python sdk 次のコマンドでpipを使用してインストールします pip install parse rest このsdkをデータのやり取りに使用します。 基本的なpythonの概念に慣れていること pythonが初めての場合は、 公式pythonドキュメント。 https //docs python org/3/ または初心者向けのチュートリアルを確認してください。 これらの前提条件が整っていることで、back4app上でpythonのバックエンドを構築する方法を探求する際に、スムーズに進めることができます。 ステップ1 – back4appプロジェクトの設定 新しいプロジェクトを作成する back4app上でpythonバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。まだ作成していない場合は、次の手順に従ってください back4appアカウントにログインする 。 back4appダッシュボードで「新しいアプリ」ボタンをクリックする 。 アプリに名前を付ける (例:「python backend tutorial」)。 プロジェクトが作成されると、back4appダッシュボードにリストされているのが見えます。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。 parse sdkを接続する back4appは、データを管理し、リアルタイム機能を提供し、ユーザー認証を処理するためにparseプラットフォームに依存しています。 pythonコードをback4appに接続するには、関連するparse sdkをインストールし、back4appダッシュボードの資格情報で初期化する必要があります。 parseキーを取得する back4appダッシュボードで、アプリの アプリ設定 または セキュリティとキー セクションに移動して、 アプリケーションid と rest apiキー を見つけてください。 parseサーバーurl (通常は https //parseapi back4app com )を見つけることもできます。 parse rest python sdkをインストールする pip install parse rest pythonスクリプトでparseを初期化する 通常、プロジェクト内にファイル(例: parse config py )を作成します parse config py # parse config py from parse rest connection import register \# replace the placeholders with your back4app credentials application id = "your application id" rest api key = "your rest api key" parse server url = "https //parseapi back4app com" \# the register function initializes the connection register(application id, rest api key, master key=none) このコードは、あなたがpythonアプリケーションの他の場所で parse config モジュールをインポートするたびに、特定のback4appインスタンスに接続するように事前設定されていることを保証します。これで、pythonコードとback4appバックエンドの間に安全な接続が確立されました。 ステップ2 – データベースの設定 堅牢なデータベーススキーマは、pythonバックエンド開発に不可欠です。back4appのデータ管理機能を使用すると、テーブル(クラス)、フィールド、およびリレーションシップを定義でき、pythonウェブフレームワークや選択した他のpythonライブラリでデータを簡単に保存および取得できます。 データモデルの作成 back4appは、コードからオブジェクトを最初に保存するときに自動的にクラススキーマを作成します。または、ダッシュボードでスキーマを定義することもできます 「データベース」セクションに移動 あなたのback4appダッシュボードで。 新しいクラスを作成 (例:「todo」)し、タイトル(string)やiscompleted(boolean)などの関連するカラムを追加します。 aiエージェントを使用したデータモデルの作成 back4appのaiエージェントは、データベーススキーマを迅速に作成するのに役立ちます。 aiエージェントを開く あなたのアプリダッシュボードから。 データモデルを説明する 自然言語で(例:「完全なクラススキーマを持つtodoアプリを作成。」)。 aiエージェントにスキーマを自動的に生成させる 。 python parse sdkを使用したデータの読み書き スキーマが準備できたら、データの保存とクエリは簡単です。例えば models py from parse rest datatypes import object import parse config # ensure parse config is imported class todo(object) pass def create todo item(title, is completed=false) new todo = todo(title=title, iscompleted=is completed) new todo save() print("todo saved successfully ", new todo objectid) def fetch todos() return todo query all() \# usage \# create todo item("buy groceries", false) \# results = fetch todos() \# for todo in results \# print(todo title, todo iscompleted) rest apiを使用したデータの読み取りと書き込み restを介して対話することを好む場合は、リクエストを直接送信できます。 curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo graphql apiを使用したデータの読み取りと書き込み back4appは、データをクエリおよび変更するためのgraphqlエンドポイントも提供しています。 mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } ライブクエリを使用する(オプション) ライブクエリを使用すると、データが変更されるたびにリアルタイムで更新を受け取ることができます。それを有効にするには ライブクエリをオンにする あなたの back4app サーバー設定 python websocketアプローチを使用する 変更を購読するために。ライブクエリ用のpython sdkはコミュニティ主導ですが、アプリケーションがリアルタイムの更新を要求する場合は、websocketライブラリを統合できます。 ステップ3 – aclとclpを使用したセキュリティの適用 簡単な概要 back4appは アクセス制御リスト (acl) と クラスレベルの権限 (clp) を提供して、データの整合性を確保するのに役立ちます。これらの機能は、一般ユーザーまたは認証されたユーザーがデータにアクセスまたは変更できる方法を定義します。 クラスレベルの権限の設定 back4appダッシュボードに移動する , アプリを選択し、 データベース セクションを開きます。 クラスを選択する (例:“todo”)。 クラスレベルの権限に移動する そして一般ユーザーまたは認証されたユーザーのためのルールを設定します。 コード内でのaclの設定 aclは、個々のオブジェクトに設定された細かい権限です。例えば from parse rest datatypes import object, acl from parse rest user import user import parse config class todoacl(object) pass def create private todo(title, owner) todo = todoacl(title=title) \# create acl that allows only the owner read/write acl = acl() acl set read access(owner objectid, true) acl set write access(owner objectid, true) todo acl = acl todo save() return todo aclとclpを使用することで、pythonアプリケーションを構築する際にセキュリティと利便性のバランスを取ることができます。 ステップ4 – クラウドコード関数の作成 クラウドコードの理由 クラウドコードを使用すると、重要なビジネスロジックをサーバー側にオフロードできます。これには、バリデーション、トリガー、または機械学習ツールや外部apiをpythonバックエンド開発に統合するような高度なタスクが含まれる可能性があります。 例の関数 あなたは、back4app上の main js (javascriptベースのクラウドコード)に関数を書くかもしれません。アプリケーションをpythonで開発している間、back4appのクラウドコード環境はnode js/javascriptを使用していることに注意してください。これらの関数は、pythonコードや他のクライアントから呼び出すことができます。 // main js parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw new error("no text provided"); } return { length text length }; }); この関数は、pythonのrestまたはgraphql機能を使用して呼び出すことができます import requests def get text length(text) url = "https //parseapi back4app com/functions/calculatetextlength" headers = { "x parse application id" "your app id", "x parse rest api key" "your rest api key", "content type" "application/json" } response = requests post(url, headers=headers, json={"text" text}) data = response json() return data get("result", {}) \# usage length info = get text length("hello back4app") print(length info get("length")) デプロイメントとnpm back4appのcloud codeは、 back4app cli https //www back4app com/docs/local development/parse cli を使用してデプロイされるか、ダッシュボードを介してデプロイされます。データ操作や外部api呼び出しのためのnpmパッケージをインストールし、 main js というファイルで参照することができます。このアプローチは、サーバー側でコードを効率的かつ安全に保つことができます。 ステップ5 – 認証の設定 ユーザー認証を有効にするまたは設定する back4appは、 parse user クラスを認証に利用しています。これにより、パスワードのハッシュ化、セッショントークンなどが自動的に処理されます。サインアップ、ログイン、またはパスワードリセットを最小限のオーバーヘッドで管理できます。 pythonからサインアップおよびログイン from parse rest user import user import parse config def sign up user(username, password, email) new user = user signup(username, password, email=email) print("user signed up successfully ", new user objectid) return new user def log in user(username, password) logged user = user login(username, password) print("user logged in ", logged user username) return logged user セッションはparseによって自動的に処理されます。ログインしているユーザーを追跡し、必要に応じて logout() を呼び出すことができます。詳細については、公式の ユーザークラスのドキュメント https //www back4app com/docs/platform/users を参照してください。 ソーシャルログイン oauthフローを設定するか、特化したアダプターを使用することで、facebookやgoogleなどの人気プロバイダーを統合できます。詳細については、 ソーシャルログインのドキュメント https //www back4app com/docs/platform/sign in with apple を参照して、pythonプロジェクトでこれらの機能を設定する方法を確認してください。 ステップ6 – ファイルストレージの処理 ファイルストレージの設定 parseプラットフォームにはネイティブファイルストレージが含まれています import requests import parse config def upload file(file path) file name = file path split('/')\[ 1] url = f"https //parseapi back4app com/files/{file name}" headers = { "x parse application id" "your app id", "x parse rest api key" "your rest api key", "content type" "image/jpeg" # or other mime type } with open(file path, 'rb') as f response = requests post(url, headers=headers, data=f) return response json() get('url') 例 このファイルをparseオブジェクトにurlを保存することで添付できます。これにより、メディアがback4appによって安全にホストされている間、データの整合性が保たれます。 セキュリティの考慮事項 例えば、認証されたユーザーのみを許可するようにparseサーバーの設定を構成することで、誰がファイルをアップロードまたはアクセスできるかを制御できます。このアプローチにより、プロダクションのpythonアプリケーションが安全に保たれます。 ステップ7 – メール確認とパスワードリセット 概要 メール確認とパスワードリセットはユーザー管理において重要です。これにより、ユーザーの身元を確認し、アカウントのセキュリティを維持します。 back4appダッシュボードの設定 メール確認を有効にする を アプリ設定 > メール設定 にて設定します。 メールテンプレートを設定する (例:送信元アドレスやパスワードリセットの指示など) コード実装 pythonから、restエンドポイントまたはパースライブラリを介してパスワードリセットメールをトリガーできます。例えば: curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "user\@example com"}' \\ https //parseapi back4app com/requestpasswordreset これにより、pythonバックエンドまたは他のインターフェースから直接パスワードリセットのシームレスなフローが確保されます。 ステップ8 – クラウドジョブによるタスクのスケジューリング クラウドジョブの機能 クラウドジョブを使用すると、古いレコードのクリーンアップや定期的なレポートの生成などのタスクを自動化できます。これらは指定された間隔でback4appのインフラストラクチャ上で実行されます。 例 あなたの main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); このジョブを毎日または毎週実行するようにスケジュールできます バックグラウンドジョブ セクションを使用してback4appダッシュボードで。 ステップ9 – ウェブフックの統合 定義 ウェブフックを使用すると、back4appアプリが特定のイベントが発生したときに外部サービスに通知できます。これは、支払いゲートウェイや分析プラットフォームとの統合に役立ち、開発プロセスを拡張します。 設定 ナビゲート して webhooks をあなたのback4appダッシュボードで。 新しいwebhook エンドポイントを追加します(例: https //your service com/webhook endpoint )。 選択 してwebhookをトリガーするイベント(例:オブジェクトの作成または更新)を選びます。 cloud codeトリガーでwebhookを定義することもできます。例えば、 beforesave または aftersave を使用して外部apiにデータを投稿します。 ステップ10 – back4app管理パネルの探索 どこで見つけるか back4app管理アプリは、 back4app admin app のウェブベースの管理インターフェースです。これにより、チームはcrud操作を実行し、データを管理し、追加のコードを書くことなく日常業務を処理できます。これにより、pythonバックエンド開発プロセスが効率化される可能性があります。 機能 有効にする 管理者アプリを アプリダッシュボード > その他 > 管理者アプリ から選択し、手順に従ってください 最初の管理者ユーザーを作成します。新しい役割 ( b4aadminuser ) とクラスが自動的にスキーマに追加されます。 管理インターフェースのサブドメインを選択し、最終決定します。次に、新しい管理者アプリにアクセスするためにログインします。 管理者アプリは、レコードの更新や削除、データの管理を簡単に行えます。適切なアクセス制御を行えば、プロジェクトマネージャーやステークホルダーと安全に共有できます。 結論 このガイドに従って pythonのバックエンドの構築方法 を学んだことで、あなたは 安全なバックエンドを作成しました back4app上のpythonアプリケーション用。 柔軟なスキーマと関係を持つデータベースを構成しました 。 リアルタイムクエリを実装しました インスタントデータ更新のために(ライブクエリをオプションとして)。 aclとclpを使用してデータを保護するためのセキュリティ対策を適用しました 。 サーバーサイドのロジックを処理するためにjavascriptでcloud codeを記述しました pythonから簡単に呼び出せます。 メール認証とパスワードリセットフローを使用してユーザー認証を設定しました 。 ファイルのアップロードを処理しました オプションのファイルセキュリティを使用して。 自動化されたタスクのために定期的なジョブをスケジュールしました 。 webhookを使用して外部サービスを統合しました 。 データ管理とコラボレーションのために管理パネルを探索しました 。 堅牢なpythonコードベースと強力なback4appバックエンドを持って、あなたは今、進んだデータ構造に取り組み、djangoやflaskのようなフレームワークを組み込み、さらには機械学習を統合する準備が整いました。 pythonは無限の可能性を提供し、back4appと組み合わせることで、サーバーのメンテナンスではなく、コアビジネスロジックに集中しながら迅速に反復することができます。 次のステップ 本番環境向けのpythonアプリを構築する データベーススキーマを洗練し、キャッシングを追加し、パフォーマンスの最適化を管理することによって。 高度な機能を探求する ロールベースのアクセス制御、高度なロギング、または分析のためのサードパーティapiの接続など。 back4appの公式ドキュメントをレビューする セキュリティ、パフォーマンスチューニング、ログ分析についての深い洞察を得るために。 dockerやkubernetesのようなツールを使って実験する 必要に応じてアプリケーションをコンテナ化し、スケールさせるために。 pythonの強力なライブラリとback4appのスケーラブルなインフラストラクチャを活用することで、自信を持ってバックエンド開発の旅を加速させることができます。