واجهة برمجة تطبيقات جروف شوب جانغو
ملخص
يقدم هذا المشروع واجهة برمجة تطبيقات قوية بدون رأس باستخدام إطار عمل Django وDjango REST، مع دعم لكل من البيئات المتزامنة وغير المتزامنة التي يسهلها Uvicorn (ASGI) وGunicorn (WSGI) على التوالي. فهو يستفيد من Django Allauth للمصادقة، ويستخدم Celery مع Redis لإدارة المهام، ويستخدم Postgres لتخزين البيانات. تشمل الميزات التخزين المؤقت والدعم متعدد اللغات وتغطية الاختبار الشاملة. تشتمل واجهة برمجة التطبيقات (API) أيضًا على لوحة إدارة Django مدمجة لإجراء عمليات إدارية فعالة.
هيكل المشروع
تتضمن تطبيقات Django ضمن هذا المشروع ما يلي:
- الأساسية : الوظائف الأساسية والمرافق المشتركة.
- المستخدم : إدارة المستخدم والمصادقة.
- المنتج : إدارة كتالوج المنتجات.
- الطلب : معالجة الطلب وإدارته.
- البحث : إمكانيات البحث المتقدمة.
- شريط التمرير : أشرطة تمرير ديناميكية لواجهة المستخدم للترقيات والميزات.
- المدونة : إدارة المحتوى لمنشورات المدونة.
- SEO : أدوات وتكوينات SEO.
- نصيحة : نصائح المستخدم وأقسام النصائح.
- ضريبة القيمة المضافة : حساب ضريبة القيمة المضافة وإدارتها.
- البلد : التكوينات الخاصة بكل بلد.
- المنطقة : البيانات والإعدادات الإقليمية.
- طريقة الدفع : تكوينات طريقة الدفع.
- الجلسة : إدارة جلسة المستخدم.
- السلة : وظائف عربة التسوق.
- الإخطار : آليات إخطار المستخدم.
- المصادقة : طبقات مصادقة إضافية.
- الاتصال : إدارة الاتصال وأدوات الاتصال.
سمات
- المصادقة وإدارة المستخدم : إدارة حساب المستخدم والجلسة بشكل مبسط.
- دعم متعدد اللغات : يستوعب لغات مختلفة مما يعزز سهولة الاستخدام على مستوى العالم.
- البحث المتقدم والتصفية : يستفيد من البحث بالنص الكامل لـ Postgres لاسترجاع البيانات بكفاءة.
- جدولة المهام : يستخدم الكرفس لإدارة المهام في الخلفية.
- تحسين الأداء : تنفيذ إستراتيجيات التخزين المؤقت لتحسين استجابة واجهة برمجة التطبيقات.
- الاختبار : يشمل اختبارات الوحدة والتكامل الشاملة.
- لوحة الإدارة : لوحة الإدارة المدمجة في Django للإدارة المباشرة.
- وثائق واجهة برمجة التطبيقات : واجهة برمجة تطبيقات موثقة جيدًا باستخدام Swagger وRedoc.
- الحاوية : تكامل Docker للإعداد والنشر المبسط.
التقنيات
- الأطر : جانغو، إطار جانغو REST
- المصادقة : جانغو آلوث
- قاعدة البيانات : PostgreSQL
- إدارة المهام : الكرفس
- وسيط الرسائل : ريديس
- إعداد الخادم : Uvicorn (ASGI)، Gunicorn (WSGI)
- الحاويات : عامل الميناء
يثبت
المتطلبات الأساسية
- بايثون 3.13 أو أعلى
- جانغو 5.0 أو أعلى
- PostgreSQL
- ريديس
رخصة
هذا المشروع مفتوح المصدر بموجب ترخيص MIT. راجع ملف الترخيص لمزيد من التفاصيل.
أوامر Docker لمشاريع Django
باستخدام دوكر يؤلف
عمليات قاعدة البيانات
- تشغيل عمليات ترحيل قاعدة البيانات :
docker compose run backend sh -c "python manage.py makemigrations --noinput"
- تطبيق عمليات الترحيل :
docker compose run backend sh -c "python manage.py migrate"
إدارة المستخدم
- إنشاء مستخدم متميز :
docker compose run backend sh -c "python manage.py createsuperuser"
الملفات الثابتة
- جمع الملفات الثابتة :
docker compose run backend sh -c "python manage.py collectstatic --noinput"
الاختبار والتغطية
- تشغيل الاختبارات :
docker compose run backend sh -c "python manage.py test tests/"
- تشغيل الاختبارات مع التغطية (باستثناء ملفات ومجلدات محددة):
docker compose run backend sh -c "coverage run --omit=*/migrations/*,*/management/*,*/manage.py,*/setup.py,*/asgi.py,*/wsgi.py --source='.' manage.py test tests/ && coverage report && coverage html"
- إنشاء تقارير HTML للتغطية :
docker compose run backend sh -c "coverage html"
زرع البيانات
- قاعدة بيانات البذور ذات البيانات المزيفة :
docker compose run backend sh -c "python manage.py seed_all"
مخصص إنشاء ملفات دوكر
- التشغيل باستخدام ملف إنشاء محدد :
docker compose -f <docker-compose-file.yml> up -d --build
باستخدام دوكر إكسيك
الأوامر العامة
- تنفيذ الأمر في الحاوية :
docker exec -it <container_id> <command>
- تشغيل أمر Shell محدد :
docker exec -it <container_id> sh -c "<command>"
التعريب
- إنشاء رسائل محلية :
docker exec -it <container_id> sh -c "python manage.py makemessages -l <locale>"
docker exec -it <container_id> sh -c "python manage.py makemessages --all --ignore=env"
- تجميع الرسائل المحلية :
docker exec -it <container_id> sh -c "python manage.py compilemessages --ignore=env"
تكوين إضافي لأدوات التطوير
كرفس
بدء خدمات الكرفس
- قم بتشغيل جدولة ضربات الكرفس المحلية باستخدام جدولة قاعدة بيانات Django:
celery -A core beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
- قم بتشغيل عامل الكرفس :
celery -A core worker -E -l info --pool=solo
- مراقبة الكرفس مع الزهرة :
celery -A core flower --broker=amqp://guest:guest@localhost:5672// --broker_api=http://guest:guest@localhost:15672/api// --port=5555
أوفيكورن
تشغيل تطبيق ASGI
- بدء تشغيل Uvicorn لتطبيقات ASGI :
uvicorn asgi:application --port 8000 --workers 4 --log-level debug --reload
إعداد تطوير بايثون والمرافق
إصدار بايثون 3.13.1
إدارة البيئة الافتراضية
- تثبيت Virtualenv :
pip install virtualenv
- إنشاء بيئة افتراضية :
virtualenv <env_name>
- تفعيل البيئة الافتراضية :
- يونكس/لينكس:
source <env_name>/bin/activate
- ويندوز:
<env_name>Scriptsactivate
- إلغاء تنشيط البيئة الافتراضية :
deactivate
- متطلبات التثبيت :
pip install -r requirements.txt
- تثبيت المتطلبات الخاصة بالبيئة :
pip install -r requirements/<env_name>.txt
أوامر جانغو
- تثبيت جانغو :
pip install django
- بدء مشروع جديد :
django-admin startproject <project_name>
- بدء تطبيق جديد :
python manage.py startapp <app_name>
- ترحيل قاعدة البيانات وإدارتها :
- إجراء عمليات الترحيل:
python manage.py makemigrations
- تطبيق عمليات الترحيل:
python manage.py migrate
- مسح قاعدة البيانات:
python manage.py sqlflush
- تعبئة قاعدة البيانات بالبيانات الأولية (مثال لمصنع واحد):
python manage.py factory_seed --model="BlogPost" --count="100"
- تعبئة قاعدة البيانات بالبيانات الأولية (مثال لجميع المصانع):
python manage.py seed_all --model-counts="Country=10,Product=100"
- إدارة المستخدمين :
- إنشاء مستخدم متميز:
python manage.py createsuperuser
- إدارة الملفات الثابتة :
python manage.py collectstatic
- الاختبار والتصحيح :
- تشغيل الاختبارات:
python manage.py test
- الوصول إلى Django Shell:
python manage.py shell
- الصدفة المحسنة:
python manage.py shell_plus
- قذيفة قاعدة البيانات:
python manage.py dbshell
- تشغيل خادم التطوير :
python manage.py runserver
تنسيق التعليمات البرمجية والفحص
- انتقل إلى دليل المصدر :
cd src
- الالتزام المسبق والتنسيق الأسود :
- تثبيت خطافات الالتزام المسبق:
pre-commit install
- تشغيل خطافات الالتزام المسبق:
pre-commit run --all-files
- تنسيق الكود باللون الأسود:
black .
الشعر لإدارة التبعية
- تثبيت الشعر : Unix/Linux:
curl -sSL https://install.python-poetry.org | python3 -
Windows: (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
- إدارة المشاريع والتبعيات :
- إنشاء مشروع جديد:
poetry new <project_name>
- تثبيت التبعيات:
poetry install
- إضافة تبعية أو إزالتها:
poetry add <dependency_name>
poetry remove <dependency_name>
- قم بتحديث تبعية معينة أو ملف قفل:
poetry update <dependency_name>
poetry lock
- تشغيل البرنامج النصي:
poetry run <script_name>
- أدخل غلاف البيئة الافتراضية:
poetry shell
كيفية ترقية متطلبات ترقية النقطة تلقائيًا.txt
- باستخدام نقطة الترقية :
- قم بتشغيل أداة ترقية النقطة :
pip-upgrade
الفراولة الرسم البيانيQL
- تثبيت الفراولة :
pip install strawberry-graphql
- تشغيل خادم الفراولة :
strawberry server
- تشغيل باستخدام مخطط المشروع :
strawberry server core.graphql.schema:schema
إطار جانغو REST - مذهل
- إنشاء مخطط واجهة برمجة التطبيقات :
python manage.py spectacular --color --file schema.yml
استخدام أمر Git
إدارة العلامات
حذف العلامات
حذف العلامات البعيدة :
- احذف جميع العلامات البعيدة:
git tag -l | xargs -n 1 git push --delete origin
حذف العلامات المحلية :
- احذف جميع العلامات المحلية:
git tag -l | xargs git tag -d