FastAPI入門 「Hello FastAPI!」 まで。
自己紹介
フロントエンドを中心に勉強している情報系の専門学生3年生(2025年1月27日現在)です。
フルスタックでWEBアプリ開発できるようになりたくてバックエンド勉強中です。
前提
- Python実行環境
ディレクトリ構成
ディレクトリ構成は以下の通りです。
/
├─ api
│ └─ main.py
├─ env
├─ .gitignore
└─ README.md
FastAPIインストール
ルートディレクトリでターミナルを開き、fastapiインストール状況の確認を行います。
pip show fastapi
インストールできていない場合は上記のようなメッセージが出ます。
以下のコマンドでfastapiをプロジェクトにインストールします。
pip install fastapi[all]
main.py
apiフォルダを作成してmain.pyファイルを作成、以下を記述します。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
FastAPI 仮想環境での実行方法
仮想環境作成
Pythonを実行するための仮想環境を作成します。
ターミナルを開き、プロジェクトのルートで以下のコマンドを実行します。
python -m venv env
仮想環境有効化
作成した仮想環境を有効化するには以下のコマンドを実行します。
.\env\Scripts\activate
実行すると、仮想環境がactivateされます。
セキュリティエラーが出た場合
このエラーはPowershellの実行ポリシーによって起こるエラーです。
下記のようなセキュリティエラーが出た場合はセキュリティーポリシーを変更する必要があります。
.\env\Scripts\activate : このシステムではスクリプトの実行が無効になっているため、ファイル \learn-fastapi\env\Scripts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .\env\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
- 現在のポリシー確認方法
Get-ExecutionPolicy
出力
Restricted
セキュリティーポリシーの一覧とスコープ一覧
確認コマンド
Get-ExecutionPolicy -List
セキュリティーポリシーの説明(ChatGPT出力)
ポリシー名 | 説明 |
---|---|
Restricted | すべてのスクリプトの実行を禁止(デフォルト) |
AllSigned | すべてのスクリプトに信頼できる署名が必要 |
RemoteSigned | ローカルのスクリプトは実行可、ダウンロードしたものは署名が必要 |
Unrestricted | すべてのスクリプトを実行可能(警告あり) |
Bypass | すべてのスクリプトを無制限に実行(セキュリティなし) |
Undefined | そのスコープで実行ポリシーが設定されていない |
スコープの説明(ChatGPT出力)
スコープ名 | 説明 |
---|---|
MachinePolicy | グループポリシーによって設定(管理者のみ変更可能) |
UserPolicy | ユーザーごとのグループポリシー設定 |
Process | 現在の PowerShell セッションのみ適用(再起動するとリセット) |
CurrentUser | 現在のユーザーに適用(永続的 |
LocalMachine | 全ユーザーに適用(管理者権限が必要) |
デフォルトでは、全てのスクリプトの実行を禁止するRestrictedに設定されているため、セキュリティーポリシーをRemoteSignedに変更。スコープはCurrentUserを指定。(スコープの他の選択肢としてはProcessが挙げられる。Processに指定することで現在の PowerShell セッションのみ適用にセキュリティーポリシーが設定される。)
- 現在のユーザのセキュリティーポリシーをRemoteSignedに変更
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
上記コマンドによってセキュリティーポリシーが変更され、エラーは解消する。
パッケージインストール(uvicorn)
uvicornという、PythonのWEBサーバー(実行環境)をインストールします。
pip install fastapi uvicorn
アプリケーション実行
アプリケーションの実行には、以下のコマンドを実行します。
uvicorn api.main:app --reload
成功すると以下のような出力結果となります。
実行結果の確認
default(8000番)
結果
補足
main.pyで記述したAPIのエンドポイントが"@app.get("/")"とルートになっているため、アクセスするだけで結果が返ってきている。通常は下記のdocsにアクセスして実行結果を確認することになる。
docs
結果
アクセスするとこのような画面が出てくる。
詳細を確認すると、レスポンスが成功していることが確認できる。
try it out ➡ Execute でレスポンスの中身(実行結果)を確認できる。
Response Body に"message": "Hello, FastAPI!"が出力されている。
redoc
よくわからないが結果が返ってきているのを確認できる。
結果
仮想環境無効化
" control + c " で仮想環境を抜けてから、下記コマンドを実行すると仮想環境を無効化できる。
deactivate
.gitignore
__pycache__/
*.pyc
env/
あとがき
うまくいかなかったらごめんなさいm(__)m
編集履歴
2025年2月5日
- fastapiのプロジェクトへのインストール方法を追記しました。
- powershellのセキュリティーポリシーによるエラーの解決方法を追記しました。
Discussion