Rumah >pembangunan bahagian belakang >Tutorial Python >Gunakan rangka kerja FastAPI untuk membina aplikasi tugas tak segerak yang cekap
Gunakan rangka kerja FastAPI untuk membina aplikasi tugas tak segerak yang cekap
Pengenalan:
Dalam aplikasi web moden, tugas tak segerak adalah keperluan yang sangat biasa, seperti menghantar e-mel, menjana laporan, memanggil API pihak ketiga, dsb. Kaedah pemprosesan penyegerakan tradisional akan menyekat utas utama, menyebabkan pengguna menunggu terlalu lama. Untuk meningkatkan prestasi aplikasi dan pengalaman pengguna, kami boleh menggunakan tugas tak segerak untuk mengendalikan operasi yang memakan masa ini. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja FastAPI untuk membina aplikasi tugas tak segerak yang cekap dan menyediakan contoh kod khusus.
1. Pengenalan kepada rangka kerja FastAPI
FastAPI ialah rangka kerja web moden berdasarkan Python, yang menggabungkan prestasi pantas dan tinggi. FastAPI menggunakan pemprosesan permintaan tak segerak dan menggunakan tugas tak segerak untuk meningkatkan kelajuan tindak balas aplikasi dan daya pemprosesan. Pada masa yang sama, FastAPI juga menyediakan fungsi seperti menjana dokumen API secara automatik, mengesahkan parameter permintaan, memproses permintaan dan respons, dsb., yang sangat memudahkan kerja pembangunan.
2. Cipta aplikasi tugas tak segerak
pip install fastapi pip install aiohttp
Kod sampel adalah seperti berikut:
import asyncio async def send_email(email: str, content: str): # 模拟发送邮件的异步操作 await asyncio.sleep(3) print(f"向邮箱 {email} 发送邮件:{content}")
Kod sampel adalah seperti berikut:
from fastapi import FastAPI import asyncio app = FastAPI() @app.post("/send-email") async def handle_send_email(email: str, content: str): # 创建一个异步任务 task = asyncio.create_task(send_email(email, content)) return {"message": "异步任务已启动"}
Dalam kod di atas, kami menggunakan penghias @app.post
untuk menentukan laluan yang menerima permintaan POST Apabila permintaan tiba, tugas
dan mengembalikan mesej gesaan. @app.post
装饰器定义一个接受POST请求的路由,当请求到达时,将会执行handle_send_email
函数。在函数中,我们创建一个异步任务task
,并返回一个提示信息。
uvicorn main:app --reload
其中,main
为保存FastAPI应用的Python文件,app
为FastAPI应用的实例对象。--reload
选项表示当代码发生变化时,应用自动重载。
三、测试异步任务应用
现在我们可以使用任意的HTTP工具(如curl、Postman等)向/send-email
Akhir sekali, kami menggunakan arahan berikut untuk menjalankan aplikasi FastAPI:
POST /send-email HTTP/1.1 Host: localhost:8000 Content-Type: application/json { "email": "example@example.com", "content": "Hello, World!" }Antaranya,
app
ialah objek contoh aplikasi FastAPI. Pilihan --reload
menunjukkan bahawa aplikasi akan memuat semula secara automatik apabila kod berubah.
3 Uji aplikasi tugas tak segerak
/send-email
untuk menguji tak segerak. permohonan tugas.
Permintaan sampel adalah seperti berikut:
Atas ialah kandungan terperinci Gunakan rangka kerja FastAPI untuk membina aplikasi tugas tak segerak yang cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!