Kerangka ASGI kecil yang bersinar.
Dokumentasi : https://www.starlette.io
Kode Sumber : https://github.com/encode/starlette
Starlette adalah kerangka kerja/toolkit ASGI ringan, yang ideal untuk membangun layanan web asinkron dengan Python.
Ini sudah siap produksi, dan memberi Anda hal berikut:
httpx
.asyncio
dan trio
.$ pip install starlette
Anda juga ingin menginstal server ASGI, seperti uvicorn, daphne, atau hypercorn.
$ pip install uvicorn
from starlette . applications import Starlette
from starlette . responses import JSONResponse
from starlette . routing import Route
async def homepage ( request ):
return JSONResponse ({ 'hello' : 'world' })
routes = [
Route ( "/" , endpoint = homepage )
]
app = Starlette ( debug = True , routes = routes )
Kemudian jalankan aplikasinya menggunakan Uvicorn:
$ uvicorn example:app
Untuk contoh yang lebih lengkap, lihat encode/starlette-example.
Starlette hanya memerlukan anyio
, dan yang berikut ini opsional:
httpx
- Diperlukan jika Anda ingin menggunakan TestClient
.jinja2
- Diperlukan jika Anda ingin menggunakan Jinja2Templates
.python-multipart
- Diperlukan jika Anda ingin mendukung penguraian formulir, dengan request.form()
.itsdangerous
- Diperlukan untuk dukungan SessionMiddleware
.pyyaml
- Diperlukan untuk dukungan SchemaGenerator
. Anda dapat menginstal semua ini dengan pip install starlette[full]
.
Starlette dirancang untuk digunakan sebagai kerangka kerja lengkap, atau sebagai perangkat ASGI. Anda dapat menggunakan salah satu komponennya secara mandiri.
from starlette . responses import PlainTextResponse
async def app ( scope , receive , send ):
assert scope [ 'type' ] == 'http'
response = PlainTextResponse ( 'Hello, world!' )
await response ( scope , receive , send )
Jalankan aplikasi app
di example.py
:
$ uvicorn example:app
INFO: Started server process [11509]
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Jalankan uvicorn dengan --reload
untuk mengaktifkan pemuatan ulang otomatis pada perubahan kode.
Modularitas yang dirancang Starlette mendorong pembuatan komponen yang dapat digunakan kembali yang dapat dibagikan di antara kerangka ASGI apa pun. Hal ini harus memungkinkan ekosistem middleware bersama dan aplikasi yang dapat dipasang.
Pemisahan API yang bersih juga berarti lebih mudah untuk memahami setiap komponen secara terpisah.
Starlette adalah kode berlisensi BSD.
Dirancang & dibuat dengan hati-hati.
— ️ —