FastAPI と Discord の統合を使用した問い合わせフォーム バックエンドの構築
このチュートリアルでは、FastAPI を使用して、問い合わせフォームの送信を管理し、Webhook 経由で Discord チャネルに送信する堅牢で安全なバックエンド API を構築する方法を示します。 また、アクセス制御のための重要な CORS 構成についても説明します。
前提条件:
- Python 3.11
- 高速API
- httpx (非同期 HTTP リクエスト用)
- Discord Webhook URL
ステップ 1: プロジェクトのセットアップ
プロジェクト ディレクトリを作成し、必要なパッケージをインストールします。
pip install fastapi uvicorn httpx python-dotenv
ステップ 2: FastAPI アプリケーションの作成
main.py
を作成:
import os from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware from pydantic import BaseModel import httpx app = FastAPI() # CORS Configuration (Security!) app.add_middleware( CORSMiddleware, allow_origins=["https://vicentereyes.org", "https://www.vicentereyes.org"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], )
ステップ 3: データ モデルの定義
データ構造に Pydantic を使用します:
class FormData(BaseModel): name: str email: str message: str service: str companyName: str companyUrl: str
ステップ 4: 送信エンドポイント
フォーム送信ハンドラーを追加します:
@app.post("/submit/") @app.post("/submit") # Handles both /submit and /submit/ async def submit_form(form_data: FormData): try: # Format message for Discord message_content = { "content": f"New form submission:\n" f"**Name:** {form_data.name}\n" f"**Email:** {form_data.email}\n" f"**Message:** {form_data.message}\n" f"**Service:** {form_data.service}\n" f"**Company Name:** {form_data.companyName}\n" f"**Company URL:** {form_data.companyUrl}" } # Send to Discord webhook using httpx async with httpx.AsyncClient() as client: response = await client.post(os.environ["FASTAPI_DISCORD_WEBHOOK_URL"], json=message_content) if response.status_code != 204: raise HTTPException(status_code=response.status_code, detail="Discord message failed") return {"message": "Form data sent successfully"} except Exception as e: raise HTTPException(status_code=500, detail=str(e))
ステップ 5: 環境変数
.env
ファイルを作成します:
<code>FASTAPI_DISCORD_WEBHOOK_URL=your_discord_webhook_url_here</code>
仕組み:
- 安全な CORS: API へのアクセスを承認されたドメインのみに制限します。
- データ検証: Pydantic はデータの整合性を保証します。
- 非同期 Discord 統合: Discord にメッセージを効率的に送信します。
- 堅牢なエラー処理: 有益なエラー応答を提供します。
アプリケーションの実行:
uvicorn main:app --reload
http://localhost:8000
で API にアクセスします。
セキュリティのベストプラクティス:
- CORS を制限する: 必要なドメインのみを許可します。
- 環境変数: 機密情報を安全に保管します。
- 入力の検証: ユーザー入力を常に検証します。
- 包括的なエラー処理: 機密情報の公開を避けてください。
フロントエンド統合の例:
fetch('your_api_url/submit', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ /* form data */ }) });
結論:
この安全な FastAPI バックエンドは、問い合わせフォームを処理し、Discord と統合するための信頼性が高く効率的な方法を提供します。 非同期操作と堅牢なエラー処理の使用により、高性能で安全なソリューションが保証されます。
コード: https://www.php.cn/link/d92d7ec47187a662aacda2d4b4c7628e ライブ: https://www.php.cn/link/775bc655c77d679c193f1982dac04668
以上がFastAPI と Discord の統合を使用した問い合わせフォーム バックエンドの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Pythonasyncioについて...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

Python 3.6のピクルスファイルの読み込みエラー:modulenotfounderror:nomodulenamed ...

SCAPYクローラーを使用するときにパイプラインファイルを作成できない理由についての議論は、SCAPYクローラーを学習して永続的なデータストレージに使用するときに、パイプラインファイルに遭遇する可能性があります...
