Rumah pembangunan bahagian belakang Tutorial Python Bina aplikasi web tak segerak berprestasi tinggi menggunakan FastAPI

Bina aplikasi web tak segerak berprestasi tinggi menggunakan FastAPI

Sep 28, 2023 am 09:16 AM
fastapi membina prestasi tinggi

Bina aplikasi web tak segerak berprestasi tinggi menggunakan FastAPI

Gunakan FastAPI untuk membina aplikasi web tak segerak berprestasi tinggi

Dengan perkembangan pesat Internet, prestasi dan kecekapan aplikasi web telah menjadi salah satu tumpuan pengguna. Rangka kerja web tradisional selalunya tidak cekap apabila mengendalikan sejumlah besar permintaan dan tidak dapat memenuhi keperluan serentak yang tinggi. Untuk meningkatkan prestasi dan kecekapan aplikasi web, FastAPI wujud.

FastAPI ialah rangka kerja web berasaskan Python moden yang mengekalkan kesederhanaan dan kemudahan penggunaan sambil menyampaikan prestasi cemerlang. FastAPI mengguna pakai model pengaturcaraan tak segerak dan menggunakan coroutine Python dan mekanisme IO tak segerak untuk membolehkan aplikasi mengendalikan sebilangan besar permintaan serentak dengan cekap. Berikut akan memperkenalkan cara menggunakan FastAPI untuk membina aplikasi web tak segerak berprestasi tinggi.

  1. Pasang FastAPI

Pertama, anda perlu memasang FastAPI menggunakan arahan pip:

pip install fastapi
Salin selepas log masuk
  1. Tulis kod

Seterusnya, buat fail Python, seperti mainrr.py:, dan tulis kod berikut

Kod di atas mencipta aplikasi Dibuat FastAPI dan menentukan laluan permintaan GET, "/" mewakili direktori akar. Apabila mengakses direktori akar, respons JSON yang mengandungi "Hello, World!"

    Jalankan aplikasi
Gunakan uvicorn untuk menjalankan aplikasi FastAPI:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello, World!"}
Salin selepas log masuk

Kini, aplikasi FastAPI sedang berjalan. Buka pelayar dan lawati http://localhost:8000, dan anda akan melihat "Hello, World!"

    Tulis fungsi pemprosesan tak segerak
FastAPI menyokong menggunakan fungsi pemprosesan tak segerak untuk mengendalikan permintaan. Berikut ialah contoh menggunakan fungsi pemprosesan tak segerak:

uvicorn main:app --reload
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan tugas tak segerak background_task(), yang akan mencetak "Menjalankan tugas latar belakang..." setiap saat. Dalam fungsi pengendali laluan akar "/", kami menggunakan asyncio.create_task() untuk mencipta tugasan latar belakang. Dengan cara ini, apabila direktori root diakses, pelaksanaan background_task() akan dimulakan pada masa yang sama.

    Memproses parameter permintaan
FastAPI menyokong parameter lulus melalui parameter laluan URL, parameter pertanyaan, badan permintaan, dll., yang sangat fleksibel. Berikut ialah contoh menggunakan parameter laluan URL dan parameter pertanyaan:

from fastapi import FastAPI
import asyncio

app = FastAPI()

async def background_task():
    while True:
        print("Running background task...")
        await asyncio.sleep(1)

@app.get("/")
async def root():
    asyncio.create_task(background_task())
    return {"message": "Hello, World!"}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan laluan permintaan GET dengan parameter laluan item_id dan parameter pertanyaan q. Apabila mengakses, sebagai contoh, /items/42?q=test, respons berikut akan dikembalikan:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
Salin selepas log masuk

    Operasi pangkalan data tak segerak
FastAPI sememangnya menyokong operasi tak segerak dan boleh berinteraksi dengan pangkalan data tak segerak dengan mudah. Berikut ialah contoh menggunakan operasi pangkalan data tak segerak:

{
    "item_id": 42,
    "q": "test"
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan perpustakaan pangkalan data untuk mencipta sambungan pangkalan data SQLite dan melaksanakan operasi sambungan dan pemotongan apabila aplikasi dimulakan dan dimatikan. Dalam fungsi pengendali laluan akar, kami melaksanakan pertanyaan SELECT dan mengembalikan hasilnya.

    Kerahkan aplikasi
Gunakan alatan seperti uvicorn, Gunicorn, dll. untuk menggunakan aplikasi FastAPI ke persekitaran pengeluaran. Contohnya, gunakan Gunicorn untuk menggunakan aplikasi FastAPI:

from fastapi import FastAPI
from databases import Database

app = FastAPI()
database = Database("sqlite:///test.db")

@app.on_event("startup")
async def startup():
    await database.connect()

@app.on_event("shutdown")
async def shutdown():
    await database.disconnect()

@app.get("/")
async def root():
    query = "SELECT * FROM items"
    items = await database.fetch_all(query)
    return {"items": items}
Salin selepas log masuk
Arahan di atas akan memulakan 4 proses dan menggunakan UvicornWorker untuk mengendalikan permintaan.

Ringkasan

FastAPI ialah rangka kerja web moden yang sangat berkuasa yang boleh membantu kami membina aplikasi web tak segerak berprestasi tinggi. Dengan memanfaatkan ciri pengaturcaraan tak segerak Python, kami boleh mengendalikan sejumlah besar permintaan serentak dan mencapai operasi pangkalan data yang cekap. Sama ada anda sedang membangunkan projek peribadi atau membina aplikasi peringkat perusahaan, FastAPI ialah pilihan yang patut dicuba.

Atas ialah kandungan terperinci Bina aplikasi web tak segerak berprestasi tinggi menggunakan FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan Swoole untuk melaksanakan pelayan proksi terbalik HTTP berprestasi tinggi Cara menggunakan Swoole untuk melaksanakan pelayan proksi terbalik HTTP berprestasi tinggi Nov 07, 2023 am 08:18 AM

Cara menggunakan Swoole untuk melaksanakan pelayan proksi terbalik HTTP berprestasi tinggi Swoole ialah rangka kerja komunikasi rangkaian berprestasi tinggi, tak segerak dan serentak berdasarkan bahasa PHP. Ia menyediakan satu siri fungsi rangkaian dan boleh digunakan untuk melaksanakan pelayan HTTP, pelayan WebSocket, dsb. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Swoole untuk melaksanakan pelayan proksi terbalik HTTP berprestasi tinggi dan memberikan contoh kod khusus. Konfigurasi persekitaran Pertama, kita perlu memasang sambungan Swoole pada pelayan

PHP dan WebSocket: Membina aplikasi masa nyata berprestasi tinggi PHP dan WebSocket: Membina aplikasi masa nyata berprestasi tinggi Dec 17, 2023 pm 12:58 PM

PHP dan WebSocket: Membina aplikasi masa nyata berprestasi tinggi Apabila Internet berkembang dan keperluan pengguna meningkat, aplikasi masa nyata menjadi semakin biasa. Protokol HTTP tradisional mempunyai beberapa had semasa memproses data masa nyata, seperti keperluan untuk mengundi yang kerap atau mengundi panjang untuk mendapatkan data terkini. Untuk menyelesaikan masalah ini, WebSocket wujud. WebSocket ialah protokol komunikasi lanjutan yang menyediakan keupayaan komunikasi dua hala, membenarkan penghantaran dan penerimaan masa nyata antara penyemak imbas dan pelayan.

Petua Pengaturcaraan Berprestasi Tinggi C++: Mengoptimumkan Kod untuk Pemprosesan Data Berskala Besar Petua Pengaturcaraan Berprestasi Tinggi C++: Mengoptimumkan Kod untuk Pemprosesan Data Berskala Besar Nov 27, 2023 am 08:29 AM

C++ ialah bahasa pengaturcaraan berprestasi tinggi yang menyediakan pembangun dengan fleksibiliti dan skalabiliti. Terutamanya dalam senario pemprosesan data berskala besar, kecekapan dan kelajuan pengkomputeran pantas C++ adalah sangat penting. Artikel ini akan memperkenalkan beberapa teknik untuk mengoptimumkan kod C++ untuk menampung keperluan pemprosesan data berskala besar. Menggunakan bekas STL dan bukannya tatasusunan tradisional Dalam pengaturcaraan C++, tatasusunan ialah salah satu struktur data yang biasa digunakan. Walau bagaimanapun, dalam pemprosesan data berskala besar, menggunakan bekas STL, seperti vektor, deque, senarai dan set, dsb., boleh menjadi lebih

Gunakan bahasa Go untuk membangun dan melaksanakan aplikasi pengecaman pertuturan berprestasi tinggi Gunakan bahasa Go untuk membangun dan melaksanakan aplikasi pengecaman pertuturan berprestasi tinggi Nov 20, 2023 am 08:11 AM

Dengan perkembangan berterusan sains dan teknologi, teknologi pengecaman pertuturan juga telah mencapai kemajuan dan aplikasi yang besar. Aplikasi pengecaman pertuturan digunakan secara meluas dalam pembantu suara, pembesar suara pintar, realiti maya dan bidang lain, memberikan orang ramai cara interaksi yang lebih mudah dan bijak. Cara melaksanakan aplikasi pengecaman pertuturan berprestasi tinggi telah menjadi persoalan yang patut diterokai. Dalam beberapa tahun kebelakangan ini, bahasa Go, sebagai bahasa pengaturcaraan berprestasi tinggi, telah menarik banyak perhatian dalam pembangunan aplikasi pengecaman pertuturan. Bahasa Go mempunyai ciri-ciri konkurensi yang tinggi, penulisan ringkas, dan kelajuan pelaksanaan yang pantas Ia sangat sesuai untuk membina prestasi tinggi

Gunakan bahasa Go untuk membangunkan aplikasi pengecaman muka berprestasi tinggi Gunakan bahasa Go untuk membangunkan aplikasi pengecaman muka berprestasi tinggi Nov 20, 2023 am 09:48 AM

Gunakan bahasa Go untuk membangunkan aplikasi pengecaman muka berprestasi tinggi Abstrak: Teknologi pengecaman muka ialah bidang aplikasi yang sangat popular dalam era Internet hari ini. Artikel ini memperkenalkan langkah dan proses untuk membangunkan aplikasi pengecaman muka berprestasi tinggi menggunakan bahasa Go. Dengan menggunakan ciri serentak, prestasi tinggi dan kemudahan penggunaan bahasa Go, pembangun boleh membina aplikasi pengecaman muka berprestasi tinggi dengan lebih mudah. Pengenalan: Dalam masyarakat maklumat hari ini, teknologi pengecaman muka digunakan secara meluas dalam pemantauan keselamatan, pembayaran muka, buka kunci muka dan bidang lain. Dengan perkembangan pesat Internet

Binaan licin: Cara mengkonfigurasi alamat imej Maven dengan betul Binaan licin: Cara mengkonfigurasi alamat imej Maven dengan betul Feb 20, 2024 pm 08:48 PM

Binaan licin: Cara mengkonfigurasi alamat imej Maven dengan betul Apabila menggunakan Maven untuk membina projek, adalah sangat penting untuk mengkonfigurasi alamat imej yang betul. Mengkonfigurasi alamat cermin dengan betul boleh mempercepatkan pembinaan projek dan mengelakkan masalah seperti kelewatan rangkaian. Artikel ini akan memperkenalkan cara mengkonfigurasi alamat cermin Maven dengan betul dan memberikan contoh kod tertentu. Mengapa anda perlu mengkonfigurasi alamat imej Maven ialah alat pengurusan projek yang boleh membina projek secara automatik, mengurus kebergantungan, menjana laporan, dsb. Apabila membina projek di Maven, biasanya

Optimumkan proses pembungkusan projek Maven dan tingkatkan kecekapan pembangunan Optimumkan proses pembungkusan projek Maven dan tingkatkan kecekapan pembangunan Feb 24, 2024 pm 02:15 PM

Panduan langkah pembungkusan projek Maven: Optimumkan proses binaan dan tingkatkan kecekapan pembangunan Apabila projek pembangunan perisian menjadi semakin kompleks, kecekapan dan kelajuan pembinaan projek telah menjadi pautan penting dalam proses pembangunan yang tidak boleh diabaikan. Sebagai alat pengurusan projek yang popular, Maven memainkan peranan penting dalam pembinaan projek. Panduan ini akan meneroka cara meningkatkan kecekapan pembangunan dengan mengoptimumkan langkah pembungkusan projek Maven dan menyediakan contoh kod khusus. 1. Sahkan struktur projek Sebelum mula mengoptimumkan langkah pembungkusan projek Maven, anda perlu mengesahkan terlebih dahulu

Bina aplikasi berasaskan pelayar dengan Golang Bina aplikasi berasaskan pelayar dengan Golang Apr 08, 2024 am 09:24 AM

Bina aplikasi berasaskan pelayar dengan Golang Golang digabungkan dengan JavaScript untuk membina pengalaman bahagian hadapan yang dinamik. Pasang Golang: Lawati https://golang.org/doc/install. Sediakan projek Golang: Cipta fail bernama main.go. Menggunakan GorillaWebToolkit: Tambahkan kod GorillaWebToolkit untuk mengendalikan permintaan HTTP. Cipta templat HTML: Cipta index.html dalam subdirektori templat, yang merupakan templat utama.

See all articles