Tutorial ini menunjukkan membina API bahagian belakang yang teguh dan selamat menggunakan FastAPI untuk mengurus penyerahan borang hubungan dan menyampaikannya ke saluran Discord melalui webhooks. Kami juga akan menangani konfigurasi CORS yang penting untuk akses terkawal.
Prasyarat:
Langkah 1: Persediaan Projek
Buat direktori projek dan pasang pakej yang diperlukan:
<code class="language-bash">pip install fastapi uvicorn httpx python-dotenv</code>
Langkah 2: Penciptaan Aplikasi FastAPI
Buat main.py
:
<code class="language-python">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=["*"], )</code>
Langkah 3: Definisi Model Data
Gunakan Pydantic untuk struktur data:
<code class="language-python">class FormData(BaseModel): name: str email: str message: str service: str companyName: str companyUrl: str</code>
Langkah 4: Titik Akhir Penyerahan
Tambah pengendali penyerahan borang:
<code class="language-python">@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))</code>
Langkah 5: Pembolehubah Persekitaran
Buat fail .env
:
<code>FASTAPI_DISCORD_WEBHOOK_URL=your_discord_webhook_url_here</code>
Cara Ia Berfungsi:
Menjalankan Aplikasi:
<code class="language-bash">uvicorn main:app --reload</code>
Akses API di http://localhost:8000
.
Amalan Terbaik Keselamatan:
Contoh Integrasi Depan:
<code class="language-javascript">fetch('your_api_url/submit', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ /* form data */ }) });</code>
Kesimpulan:
Halaman belakang FastAPI yang selamat ini menyediakan kaedah yang boleh dipercayai dan cekap untuk mengendalikan borang hubungan dan menyepadukan dengan Discord. Penggunaan operasi tak segerak dan pengendalian ralat yang mantap memastikan penyelesaian berprestasi tinggi dan selamat.
Kod: https://www.php.cn/link/d92d7ec47187a662aacda2d4b4c7628e Langsung: https://www.php.cn/link/775bc655c77d679c193f1982dac04668
Atas ialah kandungan terperinci Membina Bahagian Belakang Borang Hubungan dengan FastAPI dan Integrasi Discord. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!