Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mencipta Titik Akhir FastAPI Yang Menerima Kedua-dua Borang dan Data JSON?

Bagaimanakah Saya Boleh Mencipta Titik Akhir FastAPI Yang Menerima Kedua-dua Borang dan Data JSON?

DDD
DDDasal
2024-10-27 11:33:02246semak imbas

 How Can I Create a FastAPI Endpoint That Accepts Both Form and JSON Data?

Mencipta Titik Akhir FastAPI untuk Penerimaan Data Fleksibel

Dalam FastAPI, adalah mungkin untuk mencipta titik akhir yang boleh mengendalikan kedua-dua badan permintaan borang dan JSON.

Pilihan 1: Tentukan Jenis Kandungan Secara Dinamik

  • Buat fungsi kebergantungan untuk menyemak pengepala Jenis Kandungan.
  • Uraikan kandungan permintaan menggunakan kaedah berasaskan Starlette pada jenis kandungan.
  • Gunakan blok cuba kecuali untuk menangkap sebarang ralat penghuraian.

Pilihan 2: Gunakan Parameter Pilihan

  • Tentukan titik akhir anda dengan parameter Fail dan Borang yang ditandakan sebagai Pilihan.
  • Semak sama ada parameter mempunyai nilai untuk menentukan sama ada data borang telah dihantar.
  • Jika tidak, cuba huraikan isi permintaan sebagai JSON.

Pilihan 3: Asingkan Titik Akhir dengan Middleware

  • Buat titik akhir berasingan untuk JSON dan bentuk permintaan data.
  • Gunakan perisian tengah untuk menyemak Jenis Kandungan dan mengubah hala permintaan ke titik akhir yang sesuai.

Pilihan 4: Pertimbangkan Permintaan Gabungan

  • Gunakan model_validate_json Pydantic () kaedah untuk menghuraikan badan JSON yang diluluskan dalam parameter Borang.
  • Benarkan penyerahan kedua-dua JSON dan data borang dalam satu permintaan dengan menjadikan parameter titik akhir sebagai pilihan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Titik Akhir FastAPI Yang Menerima Kedua-dua Borang dan Data 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