Quickstarters
CRUD Samples
FlaskでCRUDアプリ開発?
30 分
概要 このチュートリアルでは、flaskを使用してcrud(作成、読み取り、更新、削除)アプリケーションを構築する方法を案内します。 データ管理を簡素化するために、バックエンドサービスとしてback4appを統合します。back4appプロジェクトの設定、柔軟なデータ構造の設計、flaskを使用したcrud機能の実装を学びます。 このウォークスルーでは、まず basic crud app flask という名前のback4appプロジェクトを作成し、堅牢な非関係データストレージソリューションを提供します。 クラスとフィールドを使用して、手動またはback4appのaiエージェントを使用してデータスキーマを定義します。 back4appの管理インターフェースでバックエンドを設定した後、rest api呼び出しを介してflaskアプリケーションをサービスに接続します。このチュートリアルでは、データへの安全なアクセス管理も扱います。 最終的には、crud操作を実行できる生産準備が整ったflaskアプリケーションを作成し、安全なユーザー認証とデータ処理を行うことができるようになります。 学ぶこと 非関係型バックエンドを使用したflaskベースのcrudアプリを作成する方法。 back4app上でバックエンドを構築し、flaskプロジェクトと統合する方法。 back4app管理インターフェースを利用してcrud操作を簡単に管理する方法。 dockerを使用してコンテナ化を含むflaskアプリケーションをデプロイする方法。 前提条件 始める前に、次のことを確認してください 設定されたプロジェクトを持つback4appアカウント。 助けが必要ですか? back4appの始め方 https //www back4app com/docs/get started/new parse app を参照してください。 設定されたpython開発環境。 vscodeやpycharmなどのエディタを使用し、python 3 8(またはそれ以降)をインストールしてください。 python、flask、およびrest apiの基本的な知識。 必要に応じて、 pythonドキュメント https //docs python org/3/ を参照してください。 ステップ 1 – 初期プロジェクト設定 back4appプロジェクトの作成 back4appアカウントにログインします。 「新しいアプリ」をクリックします ダッシュボードから。 プロジェクト名を入力します: basic crud app flask そして設定プロセスを完了します。 新しいプロジェクトを作成 作成後、プロジェクトはダッシュボードに表示され、バックエンド設定の基盤となります。 ステップ 2 – データスキーマの構築 データ構造の定義 このアプリケーションでは、back4appプロジェクトにいくつかのクラスを設定します。以下は、crud操作に必要なコアクラスとそのフィールドの例です。 1\ アイテムクラス フィールド タイプ 説明 id オブジェクトid 自動生成された一意の識別子。 タイトル 文字列 アイテムの名前またはタイトル。 説明 文字列 アイテムの簡単な概要。 作成日時 日付 アイテムが作成されたタイムスタンプ。 更新日時 日付 最新の更新のタイムスタンプ。 2\ ユーザークラス フィールド タイプ 説明 id オブジェクトid 自動生成された一意の識別子。 ユーザー名 文字列 ユーザーのためのユニークなユーザー名。 メール 文字列 ユニークなメールアドレス。 パスワードハッシュ 文字列 認証のための安全にハッシュ化されたパスワード。 作成日時 日付 ユーザーアカウントが作成されたタイムスタンプ。 更新日時 日付 最後のアカウント更新のタイムスタンプ。 これらのクラスを作成し、back4appダッシュボードで直接フィールドを追加できます。 新しいクラスを作成 データ型を選択し、フィールドに名前を付け、デフォルト値を設定し、必須としてマークすることで、列を追加できます。 列を作成 back4appのaiエージェントを利用したスキーマ作成 ダッシュボードのaiエージェントは、指示に基づいて自動的にスキーマを確立できます。このツールはプロセスを簡素化し、crudタスクに最適なデータモデルを確保します。 aiエージェントの使用方法 aiエージェントを開く back4appダッシュボードにサインインし、プロジェクト設定の下にあるaiエージェントを見つけます。 スキーマを説明する クラスとフィールドをリストアップした詳細なプロンプトを提供します。 設定を確認する 提案されたスキーマを確認し、変更を承認します。 例のプロンプト create the following classes in my back4app project 1\) class items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) class users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) このai駆動のプロセスは時間を節約し、一貫した効果的なデータモデルを保証します。 ステップ3 – 管理インターフェースの有効化とcrud操作の処理 管理インターフェースの概要 back4appの管理インターフェースは、バックエンドデータを管理するためのノーコードソリューションを提供します。ドラッグアンドドロップ機能を使用して、レコードの追加、編集、削除などのcrud操作を簡単に実行できます。 管理インターフェースの有効化 「その他」メニューに移動 あなたのback4appダッシュボードで。 「管理アプリ」を選択 をクリックします。 「管理アプリを有効にする。」 管理アカウントを作成します、 これにより、初期の役割が設定されます。例えば、 b4aadminuser です。 管理アプリを有効にする 有効化後、管理インターフェースにサインインしてプロジェクトデータを管理します。 管理アプリダッシュボード crudのための管理インターフェースの使用 管理インターフェース内で、あなたは 新しいエントリを挿入する クラス内で「レコードを追加」をクリックして(例:アイテム)、新しいデータを作成します。 エントリを表示および修正する 任意のレコードを選択して詳細を確認したり、フィールドを更新したりします。 レコードを削除する もはや必要のないエントリを削除します。 この使いやすいインターフェースは、バックエンド管理を効率化することで生産性を向上させます。 ステップ 4 – flask アプリケーションを back4app に接続する バックエンドが設定されたら、次のステップは flask アプリケーションを back4app にリンクすることです。 flaskからapi呼び出しを行う flask用の専用parse sdkがないため、rest api呼び出しを使用します。flaskアプリでは、 requests ライブラリを利用してcrud操作を行うことができます。 例:api通信の設定 リクエストライブラリをインストールします: ターミナルで次のコマンドを実行します: pip install requests api呼び出しのためのpythonモジュールを設定します: 「 back4app api py 」という名前のファイルを作成します。 # back4app api py import requests application id = "your application id" rest api key = "your rest api key" base url = "https //parseapi back4app com/classes" headers = { "x parse application id" application id, "x parse rest api key" rest api key, "content type" "application/json" } def get items() response = requests get(f"{base url}/items", headers=headers) return response json() def create item(title, description) data = {"title" title, "description" description} response = requests post(f"{base url}/items", headers=headers, json=data) return response json() def update item(object id, title, description) data = {"title" title, "description" description} response = requests put(f"{base url}/items/{object id}", headers=headers, json=data) return response json() def delete item(object id) response = requests delete(f"{base url}/items/{object id}", headers=headers) return response json() flaskルートにapi関数を統合します: 例えば、「 app py 」の中で: # app py from flask import flask, request, jsonify, render template from back4app api import get items, create item, update item, delete item app = flask( name ) @app route("/") def index() items = get items() return render template("index html", items=items get("results", \[])) @app route("/add", methods=\["post"]) def add item() title = request form get("title") description = request form get("description") result = create item(title, description) return jsonify(result) @app route("/update/\<item id>", methods=\["put"]) def modify item(item id) data = request get json() result = update item(item id, data get("title"), data get("description")) return jsonify(result) @app route("/delete/\<item id>", methods=\["delete"]) def remove item(item id) result = delete item(item id) return jsonify(result) if name == " main " app run(debug=true) この例は、flask内でrest呼び出しを使用してback4appバックエンドと対話する方法を示しています。 ステップ 5 – バックエンドの保護 アクセス制御の実装 アクセス制御を設定することでデータを保護します。たとえば、新しいアイテムを作成する際、その作成者にアクセスを制限することができます。 以下は、制御されたアクセスを使用したapi呼び出しの例です import requests def create private item(title, description, user token) data = {"title" title, "description" description} headers = { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "x parse session token" user token, "content type" "application/json" } response = requests post("https //parseapi back4app com/classes/items", headers=headers, json=data) return response json() クラスレベルの権限の設定 back4appダッシュボードでクラスレベルの権限(clp)を直接調整し、認証されたユーザーのみが特定のクラスにアクセスできるようにします。 ステップ 6 – ユーザー認証の実装 ユーザー管理の設定 back4appは、usersクラスを介して組み込みのユーザー管理を提供します。flaskアプリでは、登録とログインのためのエンドポイントを作成できます。 例 ユーザー登録とログイン \# auth py import requests application id = "your application id" rest api key = "your rest api key" headers = { "x parse application id" application id, "x parse rest api key" rest api key, "content type" "application/json" } def register user(username, password, email) data = {"username" username, "password" password, "email" email} response = requests post("https //parseapi back4app com/users", headers=headers, json=data) return response json() def login user(username, password) params = {"username" username, "password" password} response = requests get("https //parseapi back4app com/login", headers=headers, params=params) return response json() これらの関数を使用して、ユーザー登録とログインを処理するflaskルートを作成できます。 ステップ7 – flaskアプリケーションのデプロイ back4appはデプロイを簡素化します。dockerを含むいくつかの方法でflaskアプリをデプロイできます。 7 1 flaskアプリケーションのパッケージング アプリケーションを準備する 必要なすべてのファイルと依存関係が含まれていることを確認してください。 ローカルでテストする 次のコマンドでアプリをローカルで実行します flask run 7 2 プロジェクト構造の整理 典型的な構造は次のようになります basic crud app flask/ \| app py \| back4app api py \| auth py \| templates/ \| | index html \| static/ \| requirements txt \| dockerfile 7 3 dockerでのコンテナ化 プロジェクトのルートに dockerfile を含めます \# use a lightweight python image from python 3 9 slim \# set the working directory workdir /app \# install dependencies copy requirements txt run pip install no cache dir r requirements txt \# copy the application code copy \# expose the port flask runs on expose 5000 \# start the flask app cmd \["python", "app py"] 7 4 back4appウェブデプロイメントによるデプロイ githubリポジトリを接続 コードがgithubにプッシュされていることを確認してください。 デプロイ設定を構成 back4appダッシュボードで、 web deployment 機能を使用してリポジトリをリンクします(例 basic crud app flask ) とブランチを選択します。 ビルドコマンドを定義 ビルドコマンドを指定します(例 pip install r requirements txt ) とアプリケーションの場所を指定します。 デプロイ 「デプロイ」をクリックし、アプリケーションがライブになるまでログを監視します。 ステップ8 – まとめと今後の方向性 素晴らしい仕事です! back4appと統合されたflaskベースのcrudアプリケーションを成功裏に作成しました。 あなたは「 basic crud app flask 」というプロジェクトを立ち上げ、アイテムとユーザーのデータモデルを定義し、back4app管理インターフェースを通じてバックエンドを管理しました。 さらに、rest api呼び出しを使用してflaskアプリケーションを接続し、セキュリティ対策を実装しました。 次は何ですか? 機能を拡張する: 高度な検索、詳細なアイテムビュー、またはリアルタイム更新などの機能を追加することを検討してください。 バックエンドサービスを強化する: クラウド機能を探求し、サードパーティのapiを統合するか、役割ベースのアクセス制御を実装してください。 スキルを深める: 「 back4appのドキュメント https //www back4app com/docs 」やその他のリソースを訪れて、アプリケーションをさらに洗練させてください。 コーディングを楽しんで、flask crudアプリケーションの成功を祈っています!