الإصدار 2021 ، استنادًا إلى Fastapi ، تطبيق ويب سهل الاستخدام تم تطويره على Starlette Framework
pip3 install -r ./requirements.txtيعتمد تطبيق الويب على نمط البصل ~
هيكل الدليل هو:
__init__.py كمدخل لوحدات المستخدم__init__.py كدخول للوحدات الأساسية ، من الأفضل إعادة استخدامها في مشاريع أخرى Run ./main.py لبدء المثال ، والذي يتضمن:
الخطوات الداخلية هي:
./main.py ./cfg/{env} uvicorn.run ./app/__init__.pystartup ./app/__init__.py يمكنك وضع البرامج النصية للتشغيل في الداخل ./misc/build لخيارات الإطلاق المختلفة الخاصة بك
لبناء منطقك ، تتبع الخطوات المشتركة:
./main.py./app/handler ، أضف import و APP.include_router في ./app/__init__.py./app/model ، أضف الخدمات في ./app/service./app/middleware إذا لزم الأمربعض النصائح للترميز:
/docs لاختبار أجهزة التوجيه على صفحة الويبasync def ) ، حيث قد تمنع Evtloop الرئيسية ، بحيث لا يتم التعامل مع الطلبات الأخرى في الوقت المناسب. سيتم استدعاء وظائف def في مؤشرات ترابط مختلفة./core (للمشاريع الأخرى) ، يجب أن تتناسب رموز ./app./misc/dev/gen_code.py لإنشاء رموز قالب للمعالجات والموديلات والخدمات. exect مع دليل العمل كدليل جذر المشروعpydantic.BaseModel ، إنها قويةيجب أن تحتوي معظم طلبات المعالجة على رمز الحالة 200
الحل البسيط هو استخدام نموذج Resp في ./core/model/handler.py لإنشاء جسم استجابة لمعالجاتك
{
"success": bool,
"message": str,
"code": IntEnum,
"data": Any,
}
استخدم Resp.ok لإنشاء استجابة النجاح واستخدام Resp.err لتوليد استجابة الخطأ
يحتوي معالج الاختبار ./app/handler/test.py على أمثلة معالج WS
لمعرفة المزيد حول هذا الموضوع ، راجع وثائق WebSocket
Run ./misc/build/pack.sh لتعبئة المشروع في ./misc/build/start-fastapi.tar.gz
انظر ./misc/build/Dockerfile للحصول على مثال على نشر Docker