はじめに
Pythonは、多くのWeb開発者やデータサイエンティストにとって、非常に人気のあるプログラミング言語です。最近では、PythonのWebフレームワークとして、FlaskやDjangoなどがよく知られていますが、今回はその中でも注目されているモダンなWebフレームワーク、FastAPIについて紹介します。
FastAPIは、Pythonのソースコードを基に自動生成されるAPIドキュメントを提供することができる、高速で効率的なWebフレームワークです。また、Type hintsを使った型のアノテーションやPydanticを使ったデータ検証など、モダンなPythonの機能を豊富にサポートしています。そのため、高速かつ安全なWebアプリケーションの開発に向いています。
このチュートリアルでは、FastAPIを使って簡単なCRUD(Create, Read, Update, Delete)操作を行うWebアプリケーションを開発していきます。ゆっくりとしたテンポで実況しながら進めていきますので、初心者の方でも安心してお楽しみいただける内容となっています。それでは、早速始めていきましょう。
Step 1: FastAPIのインストール
まずは、FastAPIをインストールしましょう。以下のコマンドを使って、FastAPIとUvicorn(FastAPIのデフォルトのASGIサーバー)をインストールします。
pip install fastapi uvicorn
Step 2: FastAPIアプリケーションの作成
次に、FastAPIアプリケーションを作成しましょう。適当なディレクトリに、main.pyという名前のファイルを作成して、以下のコードを書き込んでください。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
このコードでは、FastAPIを使ってGETリクエストを受け取った際に、"Hello, World!"というメッセージを返すエンドポイントを定義しています。
Step 3: FastAPIアプリケーションの起動
作成したFastAPIアプリケーションを起動するために、以下のコマンドを実行します。
uvicorn main:app --reload
このコマンドを実行すると、FastAPIアプリケーションがhttp://localhost:8000/で起動されていることが確認できます。ブラウザやcurlコマンドを使って、http://localhost:8000/にアクセスしてみましょう。”Hello, World!"というメッセージが表示されれば、FastAPIアプリケーションが正常に動作しています。
Step 4: CRUD操作の実装
次に、CRUD操作を行うエンドポイントを追加していきます。以下のコードをmain.pyファイルに追加してください。
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
items = []
@app.post("/items/")
async def create_item(item: Item):
items.append(item)
return {"message": "Item created successfully"}
@app.get("/items/")
async def read_items():
return items
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return items[item_id - 1]
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
items[item_id - 1] = item
return {"message": "Item updated successfully"}
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
del items[item_id - 1]
return {"message": "Item deleted successfully"}
このコードでは、Itemというモデルを定義して、CRUD操作を行うためのエンドポイントを追加しています。POSTリクエストで/items/にアイテムを作成し、GETリクエストで/items/にアイテムの一覧を取得することができます。また、GETリクエストで/items/{item_id}に特定のアイテムを取得し、PUTリクエストで/items/{item_id}にアイテムを更新し、DELETEリクエストで/items/{item_id}にアイテムを削除することができます。
Step 5: FastAPIアプリケーションの再起動
CRUD操作を追加したFastAPIアプリケーションを再起動するために、以下のコマンドを実行します。
uvicorn main:app --reload
このコマンドを実行すると、http://localhost:8000/にアクセスすると、新たに追加したCRUD操作が使えるようになります。curlコマンドやPostmanなどを使って、各エンドポイントを呼び出して動作を確認してみてください。
まとめ
以上が、FastAPIを使ったWebアプリケーションの開発のチュートリアルとなります。FastAPIは、型ヒントやデータ検証など、モダンなPythonの機能を効果的に活用することができるため、高速で効率的なWebアプリケーションの開発に向いています。是非、このチュートリアルを参考にして、FastAPIを使ったWebアプリケーションの開発に挑戦してみてください。
RustのAxumかFastapiか悩む
FastAPIの貴重なTutorial
ミリしらですみません。この方法だと、アパッチ+HTML+Java scriptより便利で作りやすいという事でしょうか?
次に解説実況してほしいプログラミング言語やライブラリがありましたら、是非コメントに書いてください!
次回早くみたいです!!楽しみにしています!