السلام عليكم .
مكبتة دجانقو <django> للبايثون هي مكتبه لإنشاء باكيند <backend> للمواقع.
الباكيند يقصد بها :هي مصطلح بين المطورين لوصف معالجة الاوامر والاستخدام التي تحصل فواجهة المستخدم من فلترة للمدخلات الى تحديد الروابط وربطها بصفحات الواجهه
السبب في تقسيم التطوير الى نوعين (font -end \ back end) :
هو لكي يسهل عملية التطوير للموقع
- فالمصمم ل forntend يستطيع التركيز على تصماميم الموقع والتاكد من ان المستخدم يرى مايعجبه.
- بينما المطور ال backend يستطيع التركيز على الجزء المنطقي للموقع .
طبعاً هذا لايعني انك لاتستطيع إتقان الاثنان .. ولكن ستحتاج ان تتعلم مهارات كثيره وتقنيات مختلفه لكي تصل للمستوى المطور المتكامل او ال fullstack developer
ومقالاتي فالوقت الحالي ستتركز على الجزء الخلفي من الموقع .
اليوم هو الخميس 19 من ابريل قررت ان انتج شيئ يفيد المطور العربي بسبب اني مطور عربي واعرف الصعوبات التي تحصل .. من لغة الى ضعف اتصلال,
فلهذا ستكون هذي المسيره 100% مقالات واجزاء.
لن اشرح مفاهيم برمجيه ... هذي المقالات هي لشرح المكتبة اذا تريد ان تتعلم بايثون فلن تجد مرادك هنا!!.
سنبدء اليوم بتحميل المتطلبات لكي نبدء فالتدريب على مكتبة دجانقو
التثبيت :
المتطلب الاول هو انت تحمل بايثون طبعا:
المقالات سوف تركز على نسخه 3.6 من بايثون
السبب هو انها متكاملة والنسخه الاخيرة من دجانقو لاتدعم النسخ القديمة من بايثون.
بعد كذا تحتاج برنامج تبرمج فيه .. طبعا تقدر تستخدم الي تبي انا افضل visual studio code لانه خفيف وواضح بالنسبه لي انت استخدم الي تبيه ماتفرق.
فيه برنامج احب استخدمه شخصيا بديل للكونسل اذا ماتبيه مش الزامي لكن هذا الي انا ابستخدمه ك console لي
سبب استخدامي له هو فقط ان الكونسل حق الوندوز مايعجبني
بعد ماتثبت كل شي لك الخيار انك تعيد السيستم وهذا مستحسن عشان بايثون يسوي تغيراته على النظام
فلو حصلت اي مشكله عيد النظام اغلب الاحيان راح تحلها.
الحين لازم نثبت دجانقو .. طبعا مافيه رابط تضغطه هو امر اسمه pip
بيب هذا هو اداه من بايثون بحيث انك تقدر تستخدمها عشان تحمل اي مكتبة تبيها.
الطريقه هي انك تفتح الكونسل وتكتب
pip install django --upgrade
راح يبدى يحمل الدجانقو في جهازك
عطه وقته صلح لك كوب شاهي وروق ترى الموضوع مش معقد.
التطوير:
عد مايخلص سوي ملف فارغ وسمه اسم واضح لك انه مجمع projects
السبب باختصار تبي مكان تجمع فيه البروجيكتس وتكون منظم ..
الحين نبي نبدا مشروع دجانقو
وصل الكونسل لمكان الي تبي تبدا فيه البروجيكت
[cd [the path to project
cd راح يغير موقع مؤشر الكونسل للمكان الي تبيه
بعد ماتوصل للموقع المطلوب اكتب فالكونسل
[django-admin startproject [projectname
وبكذا انشأت مشروع دجانقو جديد !!
حلو طيب .. نبي نشغل موقع صح ؟ نبي نشوف موقع الاان
عشان نبدا موقع لازم نشغل السيرفر .. تذكر ان دجانقو هو باكند ففيه سيرفر مبني داخله
عشان نشغله لازم نحرك المؤشر للكونسل لداخل البروجيكت
بعد كذا راح نكتب فالكونسل:
روح للرابط
/http://127.0.0.1:800
جميل .. لدينا موقع الحين .. طبعا متصل باتصال محلي على شبكة الجهاز ..
لكن نقدر نطور عليه الى ان نصل لنتيجه المرغوبة ثم نرفعة لمستضيف !
طيب ... الحين نبي نسوي صفحة خاصه بنا لكي مصممنا يصمم الموقع
ونحن المطورين الخلفيين سنطور السيرفر وروابط الموقع..
لكي نظهر تصميمنا الخاص سنحتاج ان نتعلم على ال apps
لا مش اب جوال..
الاب هي طريقة دجانقو لتقسيم السيرفر لاقسام ثابتة فمثلا تريد اي يكون قسم لحفظ بينات المستخدم
وقسم للموقع وقسم للمنتدى
كل قسم له نظامه الخاص ولكن الكل متصل بنفس السيرفر ونفس الباكيند
فتستطيع انت تفعل كل هذا لان دجانقو مبني على فكرة التطوير المطول
فلا تحتاج انت تبدأ مشروع جديد للمنتدى وواخر للموقع فقط انشئ اب جديد!
طيب خلصنا تعاريف الحين للجزء المهم
كيف ننشئ اب جديد؟
اولا يجب ان نوقف السيرفر .. اضغط ctrl + c هذا سيوقف السيرفر
اذا اوقفت السيرفر الان نكتب الامر :
[python manage.py startapp [appname
سمي الاب الي تبيه بدون الاقواس وحافظ عالمسافات بين الاوامر
الان لدينا الاب الي نبيه نستطيع انشاء موقع عليه بتصاميم خاصه بنا !!
نحتاج الان ان نربط السيرفر بالموقع الجديد!!
لكي نربطهم نحتاج ان نعرف السيرفر بالموقع
اذهب الى اسم البروجيكت الي انشئته وافتح ملف settings
نحتاج ان نضيف موقعني هنا !!
لكي نضيفه نحتاج ان نجلب الكلاس config للموقع
السبب هو اننا نريد الموقع ان ينشئ عنصر 'object' للموقع عند بداية السيرفر
الكلاس هذا متواجد داخل ملف apps داخل ملف الموقع
داخل الملف هذا اسم كلاس باسم الموقع + config
انسخ الاسم هذا وارجع ل settings
الان سنضيف الموقع داخل قائمة INSTALLED_APPS
داخل القائمه اضف عنصر جديد فاخر القائمه من نوع char
يتكون من :
اسم الموقع
apps
the config class
بهذي الطريقة ربطنا السيرفر بالموقع
الان نريد ان نجل الرابط للموقع الاساسي يرسلنا للموقع
الروابط في دجانقو تعمل ببساطه تامه
اولا نفتح ملف 'urls' داخل ملف البروجيكت
نرى ان هناك رابط admin/ يرسلنا لموقع الادمن للسيرفر
لنجرب الطريقه
شغل السيرفر واضف واذهب الى رابط السيرفر
ثم اضغ admin/ على اخر الرابط
جميل هذا موقع الاداره للسيرفر نستطيع ان نعدل اشياء كثير من هنا لكن سنطرف لها لاحقا الان نريد ان نشغل موقعنا
اترك السيرفر شاغل تغير الكود لايؤثر عليه
الان ارجع الى ملف urls
نريد ان نضيف رابط بلا / بحيث انه هو الاساس
ونريد من الرابط هذا ان يرسلنا لموقعنا الذي انشئناه
لكي نفعل هذا نحتاج ان نظيف مكبتة الموقع في ال urls
لكن قبل هذا نحتاج ان ننسخ ملف urls ونلصق نسخه منه داخل الموقع
السبب هو اننا نريد كل موقع يكون له قارئ روابط خاص به
بعد هذا ارجع لملف urls للسيرفر واكتب
website هو اسم الاب حقي انت ضع اسم الاب في مكانه
ثم اضف عنصر path جديد برابط فارغ (لاننا نريد ان نجعله هو الاساس) ويرسلنا للمتحكم الخاص بالموقع
بعد هذا اغلق الملف وافتح ملف views داخل الموقع
الملف هذا مهم جدا لان اغلب المنطق يحصل هنا
لنختصر عمل الملف هذا .. هو طريقة دجانقو لربط الرابط بالمنطق
مثلا نريد ان يكون هناك صفحه index تعرض لي الصفحه الام للموقع اذا كان الرابط فارغ من التفرعات
لماذا ندعه مثال ؟ سنجعله واقع انشئ داله جديده وسمها index
لها مدخل request وهو يعبر عن المستخدم او البينات المستخدمه فالصفحه
ويرجع render وهو عباره عن عنصر html بمعنى ان render هو العارض للموقع
دعنا نجرب ان نعرض كلمة "Hello world" فالموقع لكي نثبت الفكرة
الحين نبي نربط urls بالداله هذي نروح للurls تبع الموقع
نضيف ملف views اولا ثم نطلب في حالة الرابط فارغ ان يشعل دالة index داخل views
والنتيجه؟
ادري شي بسيط جدا .. لكن قدرنا نتحكم بالي نعرضه وهذا شي ممتاز جدا
سنقف هنا والدرس القادم سنتعلم عن templates وكيف نسهل عمليه التصميم اكثر.
اي مشكله اكتب تحت فالكومنتس وبحاول ارد عليك.
حياكم فرحلة تطوير باكندز.
-محمد الفايز.
التعليقات (1)
Unhandled exception in thread started by <function wrapper at 0xb1038170>
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/data/data/com.termux/files/usr/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 116, in inner_run
autoreload.raise_last_exception()
File "/data/data/com.termux/files/usr/lib/python2.7/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
six.reraise(*_exception)
File "/data/data/com.termux/files/usr/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/data/data/com.termux/files/usr/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/data/data/com.termux/files/usr/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/data/data/com.termux/files/usr/lib/python2.7/site-packages/django/apps/config.py", line 120, in create
mod = import_module(mod_path)
File "/data/data/com.termux/files/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named app
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !