Rumah >pembangunan bahagian belakang >Tutorial Python >Cara mengendalikan permintaan POST dalam FastAPI dan mengembalikan respons JSON

Cara mengendalikan permintaan POST dalam FastAPI dan mengembalikan respons JSON

WBOY
WBOYasal
2023-07-29 15:08:015128semak imbas

Cara mengendalikan permintaan POST dan mengembalikan respons JSON dalam FastAPI

FastAPI ialah rangka kerja web moden yang pantas (berprestasi tinggi), mudah digunakan, berdasarkan petunjuk jenis Python standard. Ia mempunyai sokongan tak segerak yang kuat dan boleh mengendalikan situasi konkurensi tinggi dengan mudah. Dalam FastAPI, kami boleh menggunakan kod ringkas untuk mengendalikan permintaan POST dan mengembalikan respons JSON. Artikel ini akan menerangkan cara untuk menyelesaikan tugas ini dalam FastAPI dan menyediakan contoh kod yang sepadan.

Pertama, kita perlu mencipta aplikasi FastAPI. Berikut ialah kod asas untuk membuat aplikasi:

from fastapi import FastAPI

app = FastAPI()

Seterusnya, kita perlu mencipta laluan yang akan mengendalikan permintaan POST. FastAPI menggunakan penghias untuk menentukan laluan. Berikut ialah contoh pengendalian permintaan POST:

@app.post("/api/submit")
async def submit_data(data: dict):
    # 在这里进行数据处理
    # ...
    # 返回JSON响应
    return {"message": "Data submitted successfully"}

Dalam contoh di atas, kami telah menentukan laluan menggunakan penghias @app.post dengan laluan /api/submit code>, kaedah permintaan ialah POST. Fungsi penghalaan <code>submit_data menerima parameter bernama data, jenis parameter ialah dict, yang akan digunakan untuk menerima data dalam permintaan POST. @app.post定义了一个路由,该路由的路径为/api/submit,请求方法为POST。路由函数submit_data接受一个名为data的参数,参数类型为dict,它将用于接收POST请求中的数据。

submit_data函数中,我们可以进行数据处理的逻辑,如验证数据、保存到数据库等等。然后,我们使用return语句返回一个JSON响应。在这个示例中,我们返回了一个包含键"message"和值"Data submitted successfully"的字典。

注意,在FastAPI中,使用async def来定义异步函数,这样可以充分利用框架的异步特性,提高性能。

为了使应用程序能够运行起来,我们需要添加以下代码:

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

以上代码将使应用程序运行在本地的0.0.0.0地址上,监听端口8000。

现在,我们已经完成了在FastAPI中处理POST请求并返回JSON响应的基本代码。我们可以通过向/api/submit发送一条POST请求,并在请求体中包含JSON数据来测试我们的应用程序。

以下是一个使用Python requests库发送POST请求的示例:

import requests

data = {"name": "John", "age": 30}
response = requests.post("http://localhost:8000/api/submit", json=data)

print(response.json())

在上面的示例中,我们创建了一个字典data,包含了一些数据。然后,我们使用requests.post方法发送POST请求,并通过json参数将数据作为JSON发送。最后,我们使用response.json()

Dalam fungsi submit_data, kami boleh melakukan logik pemprosesan data, seperti mengesahkan data, menyimpan ke pangkalan data, dsb. Kemudian, kami menggunakan pernyataan return untuk mengembalikan respons JSON. Dalam contoh ini, kami mengembalikan kamus yang mengandungi kunci "mesej" dan nilai "Data berjaya diserahkan".

Perhatikan bahawa dalam FastAPI, gunakan async def untuk menentukan fungsi tak segerak, yang boleh menggunakan sepenuhnya ciri tak segerak rangka kerja dan meningkatkan prestasi. 🎜🎜Untuk aplikasi berjalan, kita perlu menambah kod berikut: 🎜rrreee🎜Kod di atas akan menjadikan aplikasi dijalankan pada alamat 0.0.0.0 setempat dan dengar pada port 8000. 🎜🎜Kini kami telah melengkapkan kod asas untuk mengendalikan permintaan POST dalam FastAPI dan mengembalikan respons JSON. Kami boleh menguji aplikasi kami dengan menghantar permintaan POST ke /api/submit dan memasukkan data JSON dalam badan permintaan. 🎜🎜Berikut ialah contoh menghantar permintaan POST menggunakan pustaka requests Python: 🎜rrreee🎜Dalam contoh di atas, kami mencipta kamus data yang mengandungi beberapa data. Kami kemudian menghantar permintaan POST menggunakan kaedah requests.post dan menghantar data sebagai JSON melalui parameter json. Akhir sekali, kami menggunakan kaedah response.json() untuk mendapatkan data JSON respons dan mencetaknya. 🎜🎜Dengan contoh mudah di atas, kami menunjukkan cara mengendalikan permintaan POST dan mengembalikan respons JSON dalam FastAPI. FastAPI menyediakan reka bentuk API yang ringkas dan berkuasa, membolehkan kami membina aplikasi web dengan lebih cekap. Saya harap artikel ini boleh membantu proses penggunaan FastAPI untuk mengendalikan permintaan POST. 🎜

Atas ialah kandungan terperinci Cara mengendalikan permintaan POST dalam FastAPI dan mengembalikan respons JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn