تطبيقات Django: كل ما تريد معرفته في عام 2022

نشرت: 2021-01-04

يعد Django واحدًا من أفضل أطر عمل Python التي أنشأها المحترفون والتي تشجع التصميم العملي والتطور السريع لمطوري الويب. إنه سريع وآمن ومفضل لدى مطوري الويب. لدى Django سجل للتطبيقات المثبتة بالفعل والذي يخزن التكوين ويساعد في توفير الاستبطان. يحتفظ بقائمة شاملة من النماذج المتاحة. التسجيل يسمى التطبيقات. تطبيقات Django متوفرة في "django.apps"

>>> من تطبيقات استيراد django.apps

>>> apps.get_app_config ('admin'). verbose_name

'إدارة'

جدول المحتويات

مشاريع Django

يمكن تسمية أي تطبيقات Django بأنها مشروع. يتم تعريفه من خلال وحدة الإعدادات. ومع ذلك ، فهو يحتوي على العديد من الأشياء الأخرى أيضًا. على سبيل المثال ، إذا قمت بتشغيل mysite django-admin startproject ، فستحصل على دليل مشروع mysite. سيحتوي هذا على حزمة mysite Python مع setting.py و urls.py و asgi.py و wsgi.py. غالبًا ما يمكن تمديد الحزمة بحيث تشمل CSS والتركيبات والقوالب الأخرى غير المرتبطة بأي تطبيق معين.

عادةً ما يحتوي الدليل الجذر للمشروع أو الدليل الذي يحتوي على manager.py على جميع تطبيقات المشروع التي لم يتم تثبيتها بشكل منفصل.

تطبيقات Django

يعني التطبيق حزمة من Python تحتوي على بعض الميزات. يمكن إعادة استخدامها في عدة مشاريع. يمكن أن تكون التطبيقات عبارة عن مجموعة من طرق العرض والنماذج وعناوين URL للقوالب والملفات الثابتة وما إلى ذلك. وغالبًا ما تكون سلكية في مشروعات ذات إعداد INSTALLED-APPS . غالبًا ما يمكن توصيله بآليات أخرى اختياريًا مثل URLconfs وهو إعداد MIDDLEWARE .

قراءة: راتب Django Developer في الهند

تطبيق Django عبارة عن مجموعة تعليمات برمجية تخلق تفاعلات مع أجزاء عديدة من إطار عمل معين. لا يحتوي على كائن تطبيق. في بعض الأحيان ، قد يحتاج Django إلى التفاعل مع تطبيقات معينة من أجل الاستبطان أو التكوين. وبالتالي ، هناك بيانات وصفية في AppConfig للتطبيقات المثبتة. يمكن أيضًا اعتبار حزمة المشروع كتطبيق ويمكن أن تحتوي أيضًا على نماذج.

تكوين تطبيقات Django

إذا كنت ترغب في تكوين تطبيق ، فيجب عليك تصنيف AppConfig إلى فئة فرعية ثم إضافة خط منقط إلى ذلك في INSTALLED_Apps. عندما يحصل على الخط المنقط ، يبدأ Django في البحث عن متغير default_app_config . بمجرد تحديده ، يصبح فئة AppConfig الفرعية لهذا التطبيق المحدد. إذا لم يتم عمل default_app_config ، فسيستخدم Django فئة AppConfig الأساسية .

اقرأ أيضًا: الفرق بين المكدس الكامل والمكدس المتوسط

لمؤلفي تطبيقات Django

لنفترض أنك تقوم بتطوير تطبيق "Rock 'n' Roll 'القابل للتوصيل. بعد ذلك ، يمكنك تطوير اسم بالطريقة التالية:

# rock_n_roll / apps.py

من django.apps استيراد AppConfig

فئة RockNRollConfig (AppConfig):

الاسم = 'rock_n_roll'

verbose_name = "موسيقى الروك أند رول"

ستتمكن أيضًا من تحميله كفئة فرعية AppConfig باستخدام:

# rock_n_roll / __ init__.py

default_app_config = 'rock_n_roll.apps.RockNRollConfig'

وبالتالي ، يمكن استخدام RockNRollConfig عندما يكون "rock_n_roll" موجودًا في التطبيقات المثبتة. سيساعدك على الاستفادة من ميزات AppConfig دون أن يضطر المستخدمون إلى إجراء التحديث في INSTALLED_APPS.

لمستخدمي التطبيق

لنفترض أنك تستخدم تطبيق Rock 'n' roll في مشروع يسمى مختارات. الآن ، تريده أن يظهر مثل Jazz Manouche قبل ذلك. لذلك ، يمكنك اتباع هذه الخطوات:

# مختارات / apps.py

من rock_n_roll.apps استيراد RockNRollConfig

فئة JazzManoucheConfig (RockNRollConfig):

verbose_name = "جاز مانوش"

# مختارات / إعدادات

INSTALLED_APPS = [

'anthology.apps.JazzManoucheConfig'،

#…

]

فئة AppConfig

يتم تخزين البيانات الوصفية للتطبيق في كائنات تكوين التطبيق. يتم تكوين بعض هذه السمات في الفئات الفرعية AppConfig ويتم تعيينها للقراءة فقط أو بواسطة Django.

سمات قابلة للتكوين

AppConfig.name

المسار: django.contrib.admin

يساعد في تحديد التطبيق الذي يتم تطبيق التكوين فيه. تم تعيينه في الفئات الفرعية AppConfig. فريدة من نوعها في مشروع Django.

AppConfig.label

الاسم: admin

يساعد في إعادة تسمية أحد التطبيقات خاصةً إذا كان اثنان منهم بهما تسميات متضاربة. يصبح المكون الأخير من الاسم بشكل افتراضي. يجب أن يكون معرّفًا صالحًا لـ Python. فريدة من نوعها في مشاريع Django.

AppConfig.verbose_name

الاسم: الإدارة

افتراضات على: label.title ()

AppConfig.path

مثال على دليل التطبيق: "/usr/lib/pythonX.Y/dist-packages/django/contrib/admin"

في كثير من الحالات ، يمكن لـ Django اكتشافها وتعيينها تلقائيًا ، ولكن يمكنك تجاوز سمة الفئة صراحةً من خلال فئة AppConfig الفرعية.

سمات للقراءة فقط

AppConfig.module

مثال على وحدة الجذر: <module 'django.contrib.admin' من 'django / Contrib / admin / __ init __. py'>

AppConfig.models_module

نموذج الوحدة النمطية مع النماذج: <module 'django.contrib.admin.models' من 'django / Contrib / admin / Models.py'>

يمكن أيضًا أن يكون لا شيء إذا لم يكن يحتوي على نماذج.

طرق

AppConfig.get_models ()

سيساعد في إرجاع فئة نموذج قابلة للتكرار للتطبيق. سيتطلب تسجيل التطبيق ليتم ملؤه بالكامل.

AppConfig.get_model

إرجاع النموذج المحدد مع عدم تحسس حالة الأحرف: اسم_النموذج. اسم النموذج

يساعد في رفع "خطأ البحث" في حالة عدم وجود نموذج معين. سيتطلب تسجيل التطبيق ليتم ملؤه بالكامل.

AppConfig.ready ()

يمكن أن يساعد في تجاوز الطريقة ، وبالتالي ، تنفيذ مهام التهيئة مثل تسجيل الإشارات. يمكن استدعاؤه بمجرد ملء السجل بالكامل. ومع ذلك ، لا يمكنك استيراد النماذج على مستوى الوحدة النمطية حيث يتم تعريف فئات AppConfig. يمكنك استيرادها ، مع ذلك ، بصيغة جاهزة () ، والتي تستخدم get_model () أو عبارة الاستيراد.

حزم Namespace المستخدمة كتطبيقات

عندما لا تحتوي حزمة Python على __init__.py ، فإنها تُعرف باسم حزم مساحة الاسم. يمكن أن تنتشر عبر العديد من الدلائل والمواقع على sys.path. سيحتاج تطبيق Django إلى نظام ملفات قاعدة تسجيل حيث يبحث Django استنادًا إلى التكوين عن أصول ثابتة وقوالب وما إلى ذلك ، وبالتالي ، لا يمكن استخدام تطبيق Django إلا إذا كان أحدها صحيحًا:

  • حزمة Namespace لها موقع واحد.
  • فئة AppConfig المستخدمة لتكوين التطبيق لها سمة فئة المسار.

إذا لم يتم استيفاء أي من الشروط ، فسيظهر Django تم تكوينه بشكل غير صحيح.

سجل تطبيقات Django

يتم توفير واجهة برمجة تطبيقات عامة معينة بواسطة سجل التطبيق. هذه بعض الطرق ، على الرغم من أنها قد تتغير:

تطبيقات جاهزة

عند تعيين السمة المنطقية على True ويتم ملء السجل بالكامل ويتم استدعاء جميع أساليب AppConfig.ready ().

apps.get_app_configs ()

سيعود متكررًا من مثيلات AppConfig.

apps.get_app_config (app_label)

سيعيد AppConfig للتطبيق الذي يحتوي على app_label محدد. في حالة عدم وجود تطبيق ، فسيؤدي ذلك إلى ظهور خطأ بحث.

apps.is_installed ( سيتم التحقق من وجود اسم للتطبيق المحدد في السجل الحالي. app_name سيكون الاسم الكامل للتطبيق ، على سبيل المثال: django.contrib.admin

apps.get_model ( سيعيد النموذج مع model_name و app_label المحدد. في حالة عدم وجود تطبيق ، فسيؤدي ذلك إلى ظهور خطأ بحث.

عملية التهيئة

إذن ، السؤال الآن هو كيفية تحميل تطبيقات django. عند بدء تشغيل Django ، سيقوم django.setup () بتعبئة السجل.

الإعداد ( set_prefix = صحيح )

تحدث تكوينات Django:

  • عن طريق التحميل الأول للإعدادات
  • إعداد التسجيل
  • إذا كانت set_prefix صحيحة ، فإن بادئة البرنامج النصي لمسدس URL تصبح FORCE_SCRIPT_NAME إذا تم تعريفها أو غير ذلك.
  • تمت تهيئة تسجيل التطبيق.

يحدث استدعاء تلقائي للوظيفة:

  • عندما يعمل خادم HTTP من خلال دعم WSGI لـ Django
  • عندما يتم استدعاء أمر الإدارة.

استكشاف الاخطاء

بعض المشاكل الشائعة التي يمكن أن يواجهها المرء هي:

  • AppRegistryNotReady: يحدث أثناء استيراد تكوين تطبيق أو وحدة نماذج تؤدي إلى رمز لا يعتمد على سجل التطبيق. إذا قمت بتنفيذ استعلامات قاعدة البيانات باستخدام ORM ، فقد تحدث هذه المشكلة.
  • خطأ استيراد: لا يمكن استيراد الاسم ... - يحدث عندما تنتهي تسلسلات الاستيراد في حلقة. يمكنك التخلص من العملية عن طريق تقليل التبعيات بين وحدات النماذج.
  • يتسبب Django.contrib.admin في الاكتشاف التلقائي لوحدات الإدارة النمطية. قم بتغيير INSTALLED_APPS من django.contrib.admin إلى django.contrib.admin.apps.SimpleAdminConfig لمنعه.

نأمل الآن يمكنك دمج تطبيقات Django في تطوير الويب الخاص بك بسهولة.

احصل على دورة تطوير البرمجيات من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

إذا كنت مهتمًا بمعرفة المزيد حول Django ولغات وأدوات أخرى للمطورين ، فراجع برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، أكثر من 9 مشاريع ومهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

استعد لمهنة المستقبل

تقدم الآن للحصول على درجة الماجستير في هندسة البرمجيات