
✨ Kerangka ASGI kecil yang mengkilap itu.✨
memperkenalkan
Starlette adalah kerangka ASGI / toolkit ringan yang ideal untuk membangun layanan web asinkron dalam Python.
Ini siap untuk produksi dan menawarkan kepada Anda hal-hal berikut:
- Kerangka kerja jaringan HTTP yang ringan dan kompleks rendah.
- Dukungan WebSocket.
- Tugas latar belakang dalam prosesnya.
- Mulai dan tutup acara.
Sisi klien uji* dibangun di atas
httpx. - CORS, GZip, file statis, tanggapan streaming.
- Sesi dan dukungan cookie.
- Cakupan tes 100%.
- 100% basis kode beranotasi tipe.
- Ada beberapa ketergantungan yang sulit.
- kompatibel dengan backends
asynciodantrio. - Performa keseluruhan melawan tolok ukur independen sangat baik.
permintaan
Piton 3.8 ke atas
menginstal
$ pip3 install starlette
Anda juga perlu menginstal server ASGI, seperti uvicorn, daphne, atau hypercorn.
$pip3 pasang uvicorn
contoh
example.py:
Starlette.application diimpor dari Starlette
Dari pemula. Tanggapan impor JSONResponse
Dari starlette. rute impor routing
Sinkronisasi beranda def (permintaan):
Mengembalikan JSONResponse ({'hello': 'world'})
Aplikasi = Starlette (debug = Benar, rute = [
Rute ('/', beranda),
])
Kemudian jalankan aplikasi...
Contoh $uvicorn: aplikasi
Untuk contoh yang lebih lengkap, silakan lihat di sini.
ketergantungan
Starlette hanya membutuhkan anyio, dan dependensi berikut adalah opsional:
httpx- Diperlukan jika Anda ingin menggunakanTestClient.jinja2- Diperlukan jika Anda ingin menggunakanJinja2Templates.python-multipart- Jika Anda ingin mendukung penguraian bentuk, Anda membutuhkannya denganrequest.form().itsdangerous- Diperlukan untuk dukunganSessionMiddleware.pyyaml- untukSchemaGeneratorDiperlukan untuk dukungan.
Anda dapat menginstal semua ini menggunakan pip3 install starlette[full].
Kerangka kerja atau toolkit
Starlette dirancang untuk digunakan baik sebagai kerangka kerja lengkap atau sebagai toolkit ASGI. Anda dapat menggunakan salah satu komponennya secara mandiri.
Dari pemula. Tanggapan impor PlainTextResponse
Async aplikasi def (lingkup, menerima, mengirim):
Tegaskan lingkup ['tipe'] = = 'http'
Tanggapan = PlainTextResponse ('Halo, dunia!')
Menunggu tanggapan (lingkup, menerima, mengirim)
Jalankan aplikasi app di example.py:
Contoh $uvicorn: aplikasi
INFO: Memulai proses server [11509]
INFO: Uvicorn berjalan pada http://127.0.0.1:8000 (Tekan CTRL + C untuk berhenti)
Jalankan uvicorn dengan --reload untuk memungkinkan reload otomatis saat kode berubah.
modularisasi
Desain modular Starlette memfasilitasi pembangunan komponen yang dapat digunakan kembali yang dapat dibagikan di seluruh kerangka ASGI. Ini harus memungkinkan ekosistem middleware bersama dan aplikasi yang dapat di atasi.
Pemisahan API yang bersih juga memudahkan untuk memahami setiap komponen secara individual.
Starlette adalah kode yang mengikuti perjanjian lisensi BSD. Dirancang dan diproduksi dengan baik. _ — ⭐️ —