Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Muat Turun Fail Selepas Menyiarkan Data menggunakan FastAPI?

Bagaimana untuk Muat Turun Fail Selepas Menyiarkan Data menggunakan FastAPI?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 10:26:30357semak imbas

How to Download Files After POSTing Data using FastAPI?

Memuat Turun Fail Selepas Menyiarkan Data menggunakan FastAPI

Apabila membangunkan aplikasi web yang perlu menerima input pengguna, memprosesnya dan kemudian menyediakan fail untuk dimuat turun, keupayaan untuk memudahkan pertukaran ini adalah penting. FastAPI menyediakan rangka kerja yang teguh untuk membina aplikasi sedemikian dan panduan ini akan meneroka cara memuat turun fail dengan berkesan selepas memproses data POST.

Melaksanakan Fungsi

Pertama, tentukan titik akhir dalam aplikasi FastAPI anda untuk mengendalikan permintaan muat turun fail. Titik akhir ini akan menerima laluan fail dan mengembalikan fail sebagai respons. Contoh pelaksanaan menggunakan kelas FastAPI FileResponse:

<code class="python">from fastapi import FastAPI, FileResponse, Request
from fastapi.responses import FileResponse

app = FastAPI()

@app.post('/download-file')
async def download_file(request: Request, user_id: int = Form(...)):
    file_path = 'path/to/file.mp3'
    return FileResponse(file_path, media_type='audio/mp3', filename='output.mp3')</code>

Dalam kod ini, pembolehubah laluan_fail hendaklah digantikan dengan laluan sebenar ke fail yang perlu dimuat turun. Parameter media_type dan nama fail menentukan jenis fail dan nama di bawahnya ia akan dimuat turun.

Menggunakan HTML untuk Mencetuskan Muat Turun

Selepas menentukan titik akhir, masukkan borang HTML ke bahagian hadapan anda yang mencetuskan permintaan POST ke titik akhir /download-file dan menyediakan parameter user_id yang diperlukan:

<code class="html"><form action="/download-file" method="post">
    <input type="text" name="user_id" placeholder="Enter user ID">
    <input type="submit" value="Download File">
</form></code>

Apabila borang diserahkan, permintaan POST dengan user_id yang ditentukan akan dihantar ke /download-file titik akhir, yang kemudiannya akan memproses permintaan dan mengembalikan fail untuk dimuat turun.

Mengendalikan Muat Turun Fail Besar

Jika fail yang hendak dimuat turun adalah sangat besar, pertimbangkan untuk menggunakan kelas StreamingResponse dalam FastAPI:

<code class="python">from fastapi import FastAPI, Response, StreamingResponse

@app.post('/stream-large-file')
async def download_large_file(request: Request, user_id: int = Form(...)):
    file_path = 'path/to/large_file.mp3'
    async def iter_file():
        with open(file_path, 'rb') as f:
            while chunk := f.read(1024):
                yield chunk
    return StreamingResponse(iter_file(), media_type='audio/mp3', filename='output.mp3')</code>

Di sini, fungsi iter_file membaca fail dalam ketulan untuk mengurangkan penggunaan memori dan memudahkan penstriman fail.

Kesimpulan

Dengan mengikut langkah yang digariskan di atas, anda boleh mencipta aplikasi FastAPI yang mengendalikan muat turun fail dengan lancar selepas operasi POST. Ini memperkasakan aplikasi anda untuk menawarkan fungsi muat turun, memperkayakan pengalaman pengguna dan menjadikannya lebih mudah untuk mengakses fail yang dijana.

Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail Selepas Menyiarkan Data menggunakan FastAPI?. 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