Lewati ke isi

Starlette

✨ Kerangka ASGI kecil yang mengkilap itu.✨

Build Status Package version


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 asyncio dan trio.
  • 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 menggunakan TestClient.
  • jinja2- Diperlukan jika Anda ingin menggunakan Jinja2Templates.
  • python-multipart- Jika Anda ingin mendukung penguraian bentuk, Anda membutuhkannya dengan request.form().
  • itsdangerous- Diperlukan untuk dukungan SessionMiddleware.
  • pyyaml - untuk SchemaGenerator Diperlukan 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. _ — ⭐️ —