
Visi terowongan
Kebetulan banyak aplikasi web ditulis dengan Python. Ceruk pengembangan Python ini hampir sepenuhnya dibagi antara dua pemain sehat - Django dan Flask. Oleh karena itu, sebagian besar programmer Python didedikasikan untuk bekerja dengan dua kerangka kerja ini.
Untuk alasan ini, banyak pengembang Python memiliki semacam visi terowongan - pendekatan teknik mereka dikunci di antara dua perpustakaan.
Beberapa programmer tidak terbatas pada Djano dan Flask dan menambahkan segala macam hal baru ke alat tempur mereka. Misalnya, kerangka Sanic modis.
Pergeseran tektonik: dari WSGI ke ASGI
Selama periode adaptasi yang cepat dari Python untuk kebutuhan pengembangan web, komunitas muncul dengan standar WSGI - Web Server Gateway Interface. Protokol ini menjelaskan bagaimana server web dapat mengirim permintaan HTTP untuk diproses dalam aplikasi Python dan menerima tanggapan dari sana.
WSGI membuka jalan bagi pengembangan banyak kerangka kerja dan perpustakaan pengembangan web. Mereka semua berbeda dalam arsitektur mereka, tetapi sama dalam cara mereka berkomunikasi dengan server web eksternal. WSGI diperkenalkan oleh komunitas hingga tahun 2003, dan semua kerangka kerja web klasik bertenaga hewan peliharaan (termasuk Django dan Flask) masih mendukungnya.
Masalah dengan WSGI dimulai setelah alat yang kuat untuk mengeksekusi kode dan coroutine yang asinkron muncul di inti Python. WSGI sudah tua dan sama sekali tidak fokus untuk bekerja dengan fitur bahasa baru. Oleh karena itu, ada kebutuhan untuk protokol asinkron baru untuk berkomunikasi server web dengan program Python. Jadi ASGI (Asynchronous Server Gateway Interface) muncul - keturunan ideologis WSGI , tetapi dengan coroutine dan asynchrony.
Para pengembang kerangka kerja lama disandera oleh audiens mereka - mereka tidak bisa mengambil dan mentransfer kerangka kerja mereka ke pendekatan asinkron (ini akan memecahkan kode dan menghancurkan kompatibilitas), sehingga semua pengembangan menggunakan ASGI terkonsentrasi dalam kerangka kerja baru yang dirilis dalam beberapa tahun terakhir, dan Django
Starlette - kerangka kerja yang brilian

Starlette adalah kerangka kerja baru, gesit dan keren yang mengimplementasikan pendekatan ASGI. Segala sesuatu tentang itu difokuskan pada asynchrony dan chip baru dari cabang Python ke-3.
Selain itu, Starlette memiliki banyak barang serius.
- GraphQL di luar kotak. Ya, pendekatan baru ini untuk mengembangkan interaksi klien-server mulai mendorong REST dan mengambil tempatnya di dunia kerangka kerja web.
- Soket web sudah terpasang dan siap digunakan.
- Set middleware siap pakai untuk bekerja dengan otorisasi / otentikasi, CORS.
- Tugas asinkron internal.
Losion padat - FastAPI

Beberapa programmer Starlette sangat menyukainya dan mereka membuat ekstensi untuk framework ini - FastAPI
FastAPI , pada kenyataannya, adalah noda pada kelas Starlette asli, menambahkan banyak fitur baru ke kerangka kerja yang sudah baik.
- Roti untuk membuat layanan REST API + Dokumentasi Swagger untuk metode. Starlette berfokus pada GraphQL yang trendi, FastAPI menangani mereka yang melihat REST .
- Gadget yang mudah dibangun di atas tooltips-jenis variabel. Misalnya, validator data bawaan.
- Utilitas yang bagus untuk proses otentikasi dan otentikasi - dukungan untuk JWT, OAuth2.
Dan sejumlah fasilitas dan fasilitas kecil.
Dalam residu kering
Inilah saatnya untuk terjun ke dunia ASGI dan kerangka kerjanya (kecuali, tentu saja, Anda sudah melakukannya). Solusi asinkron masih jauh dari mendominasi pasar, tetapi mereka secara aktif maju. Dan pertama-tama - karena kecepatannya.