إطار عمل ASGI الصغير الذي يلمع.
التوثيق : https://www.starlette.io
كود المصدر : https://github.com/encode/starlette
Starlette عبارة عن إطار/مجموعة أدوات ASGI خفيفة الوزن، وهي مثالية لبناء خدمات ويب غير متزامنة في Python.
إنه جاهز للإنتاج، ويمنحك ما يلي:
httpx
.asyncio
trio
.$ pip install starlette
ستحتاج أيضًا إلى تثبيت خادم ASGI، مثل uvicorn أو daphne أو 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 )
ثم قم بتشغيل التطبيق باستخدام Uvicorn:
$ uvicorn example:app
للحصول على مثال أكثر اكتمالا، راجع مثال التشفير/النجمة.
يتطلب Starlette فقط anyio
، وما يلي اختياري:
httpx
- مطلوب إذا كنت تريد استخدام TestClient
.jinja2
- مطلوب إذا كنت تريد استخدام Jinja2Templates
.python-multipart
- مطلوب إذا كنت تريد دعم تحليل النموذج باستخدام request.form()
.itsdangerous
- مطلوب لدعم SessionMiddleware
.pyyaml
- مطلوب لدعم SchemaGenerator
. يمكنك تثبيت كل هذه الأشياء باستخدام pip install starlette[full]
.
تم تصميم Starlette لاستخدامه إما كإطار عمل كامل أو كمجموعة أدوات ASGI. يمكنك استخدام أي من مكوناته بشكل مستقل.
from starlette . responses import PlainTextResponse
async def app ( scope , receive , send ):
assert scope [ 'type' ] == 'http'
response = PlainTextResponse ( 'Hello, world!' )
await response ( scope , receive , send )
قم بتشغيل تطبيق app
في 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)
قم بتشغيل uvicorn باستخدام --reload
لتمكين إعادة التحميل التلقائي عند تغيير التعليمات البرمجية.
تعمل الوحدة النمطية التي تم تصميم Starlette عليها على تعزيز بناء مكونات قابلة لإعادة الاستخدام والتي يمكن مشاركتها بين أي إطار عمل ASGI. ومن المفترض أن يؤدي ذلك إلى تمكين نظام بيئي من البرامج الوسيطة المشتركة والتطبيقات القابلة للتركيب.
ويعني الفصل النظيف لواجهة برمجة التطبيقات (API) أيضًا أنه من الأسهل فهم كل مكون على حدة.
Starlette هو رمز مرخص من BSD.
مصممة ومصنوعة بعناية.
— ️ —