Quickstarters
Feature Overview
How to Build a Backend for Django?
37 分
はじめに このチュートリアルでは、 djangoのバックエンドを構築する方法 を学びます。 back4appの強力なai駆動プラットフォームを使用します。 djangoは、高度なウェブフレームワークで、迅速なバックエンド開発とクリーンで実用的なデザインを促進します。 スケーラブルで安全なバックエンドを作成し、あなたのdjangoプロジェクトとシームレスに統合します。 back4appを使用することで、自動化されたデータベース管理、強力なapi、ファイルストレージ、ユーザー認証、データ検証、リアルタイム機能、そして高度なセキュリティ機能を活用できます。 back4appの環境が自動的にサーバーインフラを生成する様子を見て、djangoアプリのビジネスロジックに集中できるようになります。 このアプローチにより、サーバーやデータベースを手動で設定する必要がなくなり、開発時間が短縮されます。 このチュートリアルの終わりまでに、より複雑な機能、統合、カスタムロジックで拡張できるウェブアプリケーションの堅牢な構造を持つことができます。 前提条件 back4appアカウントと新しいback4appプロジェクト back4appの始め方。 https //www back4app com/docs/get started/new parse app アカウントを持っていない場合は、無料で作成できます。上記のガイドに従ってプロジェクトを準備してください。 ローカルに設定されたdjangoプロジェクト 動作する django環境 を持っていることを確認してください。ゼロから始める場合は、 djangoの公式ドキュメント。 https //docs djangoproject com/en/4 2/intro/install/ プロジェクトの installed apps と基本的な views and templates の構造が準備されていることを確認してください。 python 3 7+がインストールされていること djangoアプリのために最新のpython環境が必要です。 djangoの モデルビュー アーキテクチャと基本的なcrud操作に慣れていること djangoが初めての方や復習が必要な方は、 djangoのドキュメント。 https //docs djangoproject com/en/4 2/ これらの前提条件を整えることで、このチュートリアルを進める際にスムーズな体験が得られます。 ステップ1 – back4appで新しいプロジェクトを作成し接続する なぜback4appプロジェクトが必要なのか back4appの新しいプロジェクトは、バックエンド開発の基盤です。parse serverの機能、データベースツール、強力な管理インターフェースを提供します。 この中央構造により、サーバー管理をオフロードし、djangoアプリのビジネスロジックに集中できます。 新しいプロジェクトを作成する back4appアカウントにログインします。 「新しいアプリ」ボタンをクリックします back4appダッシュボードで。 アプリの名前を付けます (例:「django backend tutorial」)。 作成が完了すると、アプリはback4appダッシュボードに表示されます。この新しいプロジェクトは、データを保存し、セキュリティルールを管理し、djangoアプリのサーバーサイドコードを実行する場所です。 parse python sdkのインストール djangoプロジェクトをback4appに接続するために、parse python sdkを使用します。これにより、pythonコード内でデータ操作、ユーザー認証、リアルタイム機能などを処理できます。 アプリキーを取得します back4appダッシュボードで、「 アプリ設定 」または「 セキュリティとキー 」に移動して、 アプリケーションid と クライアントキー (または restキー )、および parseサーバーurl (例: https //parseapi back4app com )を見つけます。 sdkをインストールします pip install parse rest parseを初期化する あなたのdjangoプロジェクトで。例えば、次のように新しいファイルを作成します。 parse config py あなたのメインdjangoアプリディレクトリ内に( views py または models py ) \# parse config py from parse rest connection import register application id = "your application id" rest api key = "your rest api key" parse server url = "https //parseapi back4app com" \# register your app with parse register(application id, rest api key, master key=none, endpoint=parse server url) この設定により、djangoプロジェクト内の任意のファイルが parse config をインポートして、back4appバックエンドへの接続を確保できます。これで、parse python sdkを使用してdjangoコードからデータをクエリおよび保存できます。 ステップ2 – データベースの設定 1\ データモデルの作成 djangoがリレーショナルデータベースにデータを保存するためにモデルを使用するのと同様に、parseはオブジェクトを保存するためにクラスを使用します。back4appダッシュボードでクラスを作成するか、動的に定義することができます。 back4appダッシュボードで に移動します データベース をクリックします クラスを作成 名前を付けます(例:「todo」)、次に title (文字列)と iscompleted (ブール値)などのフィールドを追加します。 2\ aiエージェントを使用してデータモデルを自動生成する back4appのaiエージェントは、スキーマを自動的に生成するのに役立ちます。 aiエージェントを開く アプリダッシュボードで。 データモデルを説明します (例:「タイトル、iscompleted、ユーザーポインタを持つtodoアプリのスキーマ」)。 aiエージェントに 構築させます。 これにより、特にdjangoアプリが複雑な関係や高度なデータ検証を必要とする場合に、時間を節約できます。 3\ parse sdkを使用してデータの読み書き 以下は、あなたのdjangoプロジェクト内での creating と querying の todo オブジェクトを作成する例です \# views py from parse config import from parse rest datatypes import object class todo(object) pass def create todo item(title, is completed=false) todo = todo(title=title, iscompleted=is completed) todo save() # this performs the crud operation to save data in back4app def get all todos() return todo query all() # retrieves all todo objects from back4app これらの関数は、あなたのdjangoビューまたはシェルから呼び出すことができます。このセットアップは、あなたのdjangoアプリのロジックと連携して機能するため、あなたのウェブフレームワークはparseバックエンドと完全に統合されたままです。 4\ rest apiを使用したデータの読み書き restを好む場合、以下のように create の todo オブジェクトを作成します 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 5\ graphql apiを使用したデータの読み書き back4appはまた、 graphql インターフェースを提供しています。例えば mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } これは、djangoのビューやマイクロサービスにgraphqlクエリを統合したい場合に便利です。 6\ ライブクエリの操作(オプション) リアルタイムの更新のために、 ライブクエリを有効にする ことができます。back4appダッシュボードで。現時点では、公式のparse python sdkは直接のライブクエリサポートが限られているかもしれません。しかし、必要に応じてwebsocketや他のアプローチを通じて変更を購読することは可能です。最新のpythonライブクエリに関する更新情報は、 back4app docs https //www back4app com/docs を確認してください。 ステップ3 – aclとclpによるセキュリティの適用 1\ 概要 データを保護するために、 アクセス制御リスト(acl) と クラスレベルの権限(clp) を使用します。aclはオブジェクトごとの読み取り/書き込み権限を制御し、clpはクラス全体に適用されます。 2\ ステップバイステップ クラスレベルの権限を設定 back4appの データベース セクションに移動します。 クラスを選択します(例: todo )。 読み取り/書き込み アクセスを調整するか、ログインを要求します。 コード内でのaclの設定 これにより、djangoプロジェクトがback4appで設定された同じ詳細なセキュリティルールを尊重することが保証されます。 ステップ4 – クラウドコード関数の作成 1\ なぜクラウドコードなのか クラウドコードを使用すると、サーバー側で ビジネスロジック を実行できます。たとえば、データの検証を行ったり、外部apiを統合したり、データを保存する前にイベントをトリガーしたりできます。これは、djangoのビューやテンプレートを補完する強力な手段であり、高度なロジックを1か所に集中させることができます。 2\ 例の関数 cloud code は通常javascriptで書かれます。これをback4appにデプロイし、djangoアプリからparse python sdkまたはrestリクエストを介して呼び出します。シンプルな関数 // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); 3\ デプロイメント back4app cliを使用する または ダッシュボード あなたの main js をクラウド関数でデプロイします。 デプロイされたら、次のようにdjangoコードからアクセスできます from parse config import import requests def call calculate text length(text) url = "https //parseapi back4app com/functions/calculatetextlength" headers = { "x parse application id" application id, "x parse rest api key" rest api key, "content type" "application/json" } payload = {"text" text} response = requests post(url, json=payload, headers=headers) return response json() 4\ npm cloud codeで外部nodeモジュールが必要な場合は、cloud codeディレクトリの package json に宣言します。back4appはデプロイ時に自動的にインストールします。 ステップ 5 – 認証の設定 1\ ユーザー認証を有効にするまたは設定する デフォルトでは、parseはサインアップとログインのために user クラスを含みます。back4appダッシュボードでメール確認、パスワードリセットなどを設定します。 2\ django コードサンプル \# models py or a separate file from parse config import from parse rest user import user def register user(username, password, email) new user = user signup(username, password, email=email) return new user def login user(username, password) return user login(username, password) 3\ ソーシャルログイン google、apple、またはfacebookのログインが必要な場合は、 auth settings をback4appで設定し、それぞれのガイドに従ってください。あなたのdjangoアプリは、関連するparseメソッドを呼び出すことでユーザーをリンクまたはログインさせることができます。 ステップ 6 – ファイルストレージの処理 1\ ファイルストレージの設定 back4appは、parse sdkを介してアップロードされたファイルを安全に保存します。djangoからファイルをparse fileフィールドに送信してアップロードできます from parse rest datatypes import object, file class photo(object) pass def upload image(file path) with open(file path, 'rb') as f parse file = file(file path, f read()) photo = photo(imagefile=parse file) photo save() return photo 2\ 例 ユーザーがアップロードした画像を追加したい場合は、djangoテンプレートに \<input type="file"> を統合し、次に upload image() を呼び出すビュー関数でファイルを処理します。 3\ セキュリティの考慮事項 parseは、誰がファイルをアップロードできるかを制御する設定を提供します { "fileupload" { "enableforpublic" true, "enableforanonymoususer" true, "enableforauthenticateduser" true } } これらを調整して、信頼できるユーザーのみが機密ファイルを保存およびアクセスできるようにします。 ステップ7 – メール確認とパスワードリセット 1\ 概要 djangoの admin interface は多くのことを処理しますが、parseを使用したバックエンドでは、メール確認とパスワードリセットも有効にできます。これは、実際のユーザーを確認し、スムーズなアカウント回復の道を提供するために重要です。 2\ ダッシュボード設定 back4appアプリを開く メール確認を有効にする を アプリ設定 > メール設定 メールテンプレートをカスタマイズする してブランドに合わせる 3\ コード/実装 djangoアプリでは、パスワードリセットフォームを提供することがあります。ユーザーがリセットを要求したときは、parseのパスワードリセットエンドポイントを呼び出すか、sdkでサポートされている場合は適切なpythonメソッドを呼び出します。 ステップ8 – クラウドジョブによるタスクのスケジューリング 1\ クラウドジョブの機能 クラウドジョブ は、古いデータのクリーンアップやレポートの生成などの自動化されたタスクを実行することを可能にします。これは、djangoの crontab や celery ワークフローを補完し、back4appの環境でタスクを集中管理します。 2\ 例 // 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); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); デプロイ後、毎日または毎週実行するために、 back4appダッシュボード の サーバー設定 > バックグラウンドジョブ でスケジュールします。 ステップ9 – webhookの統合 1\ 定義 webhookは、back4appクラスで特定のイベントが発生したときに、外部サービスにhttpリクエストを送信することを可能にします。たとえば、新しいレコードが作成されるたびにslackチャンネルや決済サービスに通知します。 2\ 設定 ダッシュボードの more > webhooks に移動します。 外部エンドポイントを設定します (例:djangoプロジェクトのurl)。 トリガーを定義します (「オブジェクト作成」など、 todo )。 3\ 例 新しいtodoが作成されるたびに、postリクエストがdjangoアプリのエンドポイントに送信されます。djangoでは、jsonデータを解析して処理します(例:ログ記録やさらなる処理)。 ステップ10 – back4app管理パネルの探索 1\ どこで見つけるか 「 back4app管理アプリ は、あなたのコンソールの「 more > admin app 」の下にあります。これは、コードを書くことなくデータを管理するためのモデル中心のインターフェースです。 2\ 機能 データベース レコードを迅速に表示、編集、または削除します。 ログ エラーやプロセスログを監視します。 バックグラウンドジョブ クラウドジョブのスケジュールを管理します。 分析とプッシュ アプリに関連する場合、プッシュ通知と分析データにアクセスします。 これはdjangoの「 管理インターフェース 」に似ていますが、parseバックエンドに焦点を当てています。 結論 このガイドに従うことで、back4appを使用してdjangoのバックエンドを構築する方法を学びました。あなたは djangoアプリのための安全でスケーラブルなバックエンド構造を作成しました。 データモデルを設定し、crud操作を実行し、リアルタイム機能を活用しました。 高レベルのセキュリティのためにacl、clp、およびユーザー認証を実装しました。 ビジネスロジック、データ検証、および外部統合のためにcloud codeを使用しました。 ファイルを保存し、cloud jobsをスケジュールし、高度なワークフローのためにwebhooksを設定しました。 データを効果的に管理するためにback4app admin appを探索しました。 この基盤をもとに、djangoプロジェクトを自信を持って拡張できます。高度な機能を統合し、パフォーマンスを最適化し、エンタープライズレベルの要件を処理するためのカスタムロジックを追加してください。 parse python sdkを使って強力なwebアプリケーションを提供するために、引き続き実験を続けてください。コーディングを楽しんで! 次のステップ 生産準備が整ったdjangoアプリを構築する 高度なキャッシング、ユーザーロール、およびパフォーマンスの調整を行います。 より高度なback4app機能を活用する 高度な分析やロールベースのアクセス制御など。 公式のback4appドキュメントから学ぶ ログ、リアルタイムクエリ、およびデータ最適化についての深い知識を得るために。 他のチュートリアルを探索する djangoの強力な「ビューとテンプレート」を外部apiと組み合わせる方法を確認するために。