اذهب إلى المحتوى

تنصيب إطار العمل Django وتهيئة بيئته البرمجية على Ubuntu 16.04


مرفت مهنا

مقدمة:

إن Django هو عبارة عن إطار عمل برمجي مفتوح المصدر لتطوير تطبيقات الويب مكتوب بلغة البرمجة Python، ويقوم على النمط البنائي للبرمجيات model template view (MTV) أي النموذج-القالب-العرض، والمُستمد من النمط البنائي model–view–controller (MVC) أي النمط والعرض والمتحكم. حيث قامت مؤسسة إطار العمل Django البرمجية بتعريف النمط model على أنه مصدر مفرد ومحدد من البيانات، والعرض view على أنه عبارة عن البيانات التي يتم إظهارها للمستخدم والناتجة عن استدعاء دالة لغة البرمجة Python الخاصة بالاستجابة لطلب العناوين الالكترونية URL، والقالب على أنه عبارة عن الآلية التي يستخدمها Django لتوليد صفحات HTML.

إن مبادئ إطار العمل البرمجي Django هي: قابلية التوسُّع وإعادة الاستخدام وسرعة التطوير، كما يمتاز بالتماسك واستقلالية مكوناته عن بعضها. أي أن إطار العمل Django يقوم على المبدأ البرمجي لا تكرر نفسك DRY programming .

سنشرح في هذه المقالة طريقة تهيئة البيئة البرمجية لإطار العمل Django، كما سيتم شرح طريقة تنصيب Python 3 وpip 3 وDjango وvirtualenv لتزويدك بالأدوات الضرورية لتطوير تطبيقات الويب باستخدام إطار العمل Django.

المتطلبات:

حساب مستخدم عادي (غير جذر "root") بصلاحيات sudo مُهيّأ مسبقًا على خادم لينكس Debian أو Ubuntu.

الخطوة الأولى- تنصيب Python ومدير الحزم pip:

قبل البدء بتنصيب لغة البرمجة Python، يجب القيام بتحديث نظام التشغيل عن طريق تنفيذ الأمر التالي في موجه أوامر لينكس:

sudo apt-get update &&  sudo apt-get -y upgrade

حيث تم استخدم العلم -y من أجل تأكيد موافقتنا على تنصيب جميع البرامج والحزم البرمجية المحدَّثة (كي لا نقوم بتأكيد الموافقة يدويًا أثناء عملية التحديث). وعند السؤال عن إعداد grub-pc نضغط المفتاح ENTER لقبول الإعدادات الافتراضية، أو نُعدّه كما نريد.

تنصح مؤسسة إطار العمل Django البرمجية باستخدام الإصدار Python 3 من لغة البرمجة Python، لذا بعد انتهاء عملية تحديث النظام سنقوم بتنصيب Python 3، وذلك بتنفيذ الأمر التالي في موجه أوامر لينكس:

sudo apt-get install python3

وللتأكّد من أنه تم تنصيب Python 3 بنجاح، ننفذ أمر عرض إصدارها في موجه الأوامر:

python3 –V

فنحصل على الخرج التالي في نافذة موجه الأوامر:

Output
Python 3.5.2

بعد تنصيب Python 3، سنقوم بتنصيب الأداة pip الخاصة بإدارة وتنصيب حزم Python البرمجية، وذلك بتنفيذ الأمر التالي:

sudo apt-get install -y python3-pip

وللتأكد من نجاح عملية تنصيب الأداة pip، ننفذ أمر عرض إصدارها في موجه الأوامر:

pip –V

فنحصل على الخرج التالي في نافذة موجه الأوامر:

Output
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

الآن وبعد أن تم الانتهاء من تنصيب أداة تنصيب وإدارة الحزم pip، نستطيع استخدامها لتنصيب الحزم الضرورية لبيئة Python البرمجية.

الخطوة الثانية- تنصيب البيئة الافتراضية Virtualenv

البيئة الافتراضية virtualenv هي عبارة عن بيئة تطوير برمجية معزولة عما حولها، والتي تسمح لنا بتنصيب البرامج وحزم Python بشكل مضمَّن فيها، وبالتالي تمنع تفاعل هذه البرامج والحزم مع البيئة العامة للخادم. هذا ويتم تنصيب البيئة الافتراضية باستخدام أداة تنصيب وإدارة الحزم كما يلي: 

pip3 install virtualenv

وللتأكد من أنه تم تنصيب virtualenv بنجاح، ننفذ أمر عرض إصدارها كما يلي:

virtualenv –-version

فنحصل على الخرج التالي في نافذة موجه الأوامر:

Output
15.1.0

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

الخطوة الثالثة- تنصيب إطار العمل البرمجي Django:

هناك ثلاث طرق لتنصيب إطار العمل البرمجي Django هي:
 

  • الخيار الأول: تنصيب إطار Django ضمن البيئة الافتراضية virtualenv. وتعد هذه الطريقة مثالية عند الرغبة بعزل Django عن بيئة الخادم العامة.
  • الخيار الثاني: تنصيب إطار Django من المصدر، تُستخدم هذه الطريقة عند الرغبة بتنصيب آخر إصدار Django مباشرةً من مصدره، في حال لم يتوفرا في مخزن Ubuntu APT. غير أن طريقة التّنصيب هذه تتطلب الانتباه والترقية المستمرة عند الرغبة بالمحافظة على Django محدثًا بشكل مستمر.
  • الخيار الثالث: تنصيب إطار Django بشكل عام باستخدام أداة تنصيب الحزم pip.

سنستخدم في هذه المقالة الخيار الثالث في تنصيب إطار العمل Django ضمن البيئة الافتراضية، لكن علينا في البّداية إنشاء مجلد جديد باسم
django-apps (أو أي اسم آخر) ضمن المسار home على الخّادم، من أجل احتواء تطبيق Django الخّاص بنا، وذلك بتنفيذ الأوامر التالية في موجه أوامر النّظام:

mkdir django-apps
cd django-apps

ثم نقوم بإنشاء بيئتنا الافتراضية باسم env ضمن المجلد django-apps، وذلك بتنفيذ الأمر التالي في موجه أوامر النظام:  

virtualenv env

ثم نقوم بتفعيل بيئتنا الافتراضية env، وذلك بتنفيذ الأمر التالي:

. env/bin/activate

فيتحول موجه الأوامر من النظام إلى البيئة الافتراضية كما يلي:

(env) sammy@ubuntu:$

والآن سنقوم بتنصيب django ضمن البيئة الافتراضية env، عن طريق الأداة pip كما يلي:

(env) sammy@ubuntu:$ pip install django

وللتأكد من أنه تم تنصيب إطار العمل django بنجاح، ننفذ أمر عرض إصداره كما يلي:

(env) sammy@ubuntu:$ django-admin –-version

فنحصل على الخرج التالي في نافذة موجه الأوامر:

Output
2.0.1

الآن وبعد أن تم تنصيب إطار العمل django بنجاح، نستطيع الانتقال لإنشاء مشروع تجريبي للتأكد من أن كل شيء يعمل بشكل سليم.

الخطوة الرابعة- إنشاء مشروع تجريبي بإطار العمل Django:

سنقوم باختبار إطار العمل البرمجي Django المُنصَّب من خلال إنشاء هيكل تطبيق الويب.

ضبط إعدادات جدار الحماية:

في البداية يجب علينا إن كان ممكنًا فتح المنفذ الذي سوف نستخدمه في جدار حماية الخادم، وفي حال كانت أداة إعداد جدار الحماية UFW مُنصّبة على الخادم، يمكن عندها فتح منفذ بتنفيذ الأمر التالي:

(env) sammy@ubuntu:$ sudo ufw allow 8000

وفي حال كُنت تَستخدم جدار حماية DigitalOcean، قم باختيار HTTP من بين قواعد دخل جدار الحماية.

بدء المشروع:

نستطيع الآن توليد مشروع جديد عن طريق الأداة django-admin والمستخدمة في إدارة المهام في Python، وذلك باستخدام الأمر startproject من أجل إنشاء بنية مسار المشروع (الملفات والمجلدات الأساسية) لموقع الويب التجريبي، وذلك كما يلي:

(env) sammy@ubuntu:$ django-admin startproject testsite
Quote

ملاحظة: يؤدي تنفيذ الأمر السابق إلى تسمية مسار وحزمة المشروع بنفس الاسم والذي هو testsite، كما يقوم بإنشاء المشروع في نفس مسار تنفيذ الأمر، أما إذا أردنا إنشاء المشروع في مسار آخر فإنه يجب علينا إضافة هذا المسار إلى الأمر السابق بعد اسم المشروع، حيث يقوم Django بإنشاء الملف manage.py وحزمة المشروع في المسار المُحدد.  

نستطيع الآن الانتقال إلى مسار المشروع لتصفح ملفاته ومجلداته التي تم إنشائها وذلك بتنفيذ الأوامر التالية:

(env) sammy@ubuntu:$ cd testsite
(env) sammy@ubuntu:$ ls
Output
manage.py  testsite

نلاحظ أن هذا المسار يحتوي على الملف manage.py والمجلد testsite. إن الملف manage.py مشابه للأداة django-admin حيث يقوم بوضع حزمة المشروع في sys.path، كما يقوم بإعداد متغيرات البيئة ل DJANGO_SETTINGS_MODULE بحيث تشير إلى ملف المشروع settings.py. هذا ويمكن عرض محتويات الملف manage.py باستخدام الأمر less كما يلي:

(env) sammy@ubuntu:$ less manage.py

وعند الانتهاء من قراءته نضغط المفتاح q للخروج منه.

والآن سننتقل إلى المجلد testsite لتصفح باقي الملفات التي تم إنشائها وذلك بتنفيذ الأوامر التالية:

(env) sammy@ubuntu:$ cd testsite/
(env) sammy@ubuntu:$ ls

Output
__init__.py  settings.py  urls.py  wsgi.py

نلاحظ أنه يحتوي على مجموعة من الملفات هي:

  • __init__.py: يلعب هذا الملف كنقطة دخول إلى مشروع Python.
  • settings.py: يصف هذا الملف إعدادات الإطار Django الذي تم تنصيبه، كما يسمح للإطار Django بمعرفة الخيارات المتاحة.
  • urls.py: ويتضمن هذا الملف على اللائحة urlpatterns والتي تُستخدم لتوجيه العناوين الالكترونية URLs إلى العروض الموافقة لها views.
  • wsgi.py: ويتضمن على إعدادات واجهة مدخل خادم الويبWeb Server Gateway Interface (WSGI)، والتي هي منصة Python القياسية المستخدمة في نشر خوادم وتطبيقات الويب على استضافة الويب.
Quote

ملاحظة: لا يزال لديك القدرة بعد الانتهاء من إنشاء ملفات المشروع الافتراضية، في التعديل على الملف wsgi.py وذلك في أي وقت تريد فيه نشر تطبيقك على استضافة الويب.  

بدء وعرض موقع الويب الذي تم إنشائه:

نستطيع الآن تشغيل الخادم runserver وعرض الموقع على المضيف والمنفذ المخصص، وذلك بتنفيذ الأمر:

(env) sammy@ubuntu:$ runserver

يجب إضافة عنوان IP الخادم إلى لائحة ALLOWED_HOSTS ضمن الملف settings.py الموجود في المسار: ~/test_django_app/testsite/testsite/.
يتضمن المتغير ALLOWED_HOSTS لائحة من السلاسل النصية التي تمثل أسماء المضيف والنطاق host/domain التي يستطيع Django خدمتها، حيث تم وضع معيار الأمان هذا لمنع اختراقات الترويسة والتي يمكن أن تتم حتى ولو تم مراعاة الكثير من إعدادات الأمان لخادم الويب.
يمكنك استخدم أي محرر نصوص من أجل إضافة عنوان IP الخادم الخاص بك إلى الملف settings.py، فمثلا يمكنك استخدام محرر نصوص موجه الأوامر nano بتنفيذ الأمر التالي:

(env) sammy@ubuntu:$ nano ~/django-apps/testsite/testsite/settings.py

فبعد أن يُفتح الملف عليك الانتقال إلى قسم ALLOWED_HOSTS ثم إضافة عنوان IP الخادم الخاص بك ضمن القوسين وبين علامة أو علامتي تنصيص كما هو موضح في الملف التالي:

settings.py

ثم قم بحفظ التعديل وإنهاء المحرر nano وذلك بالضغط على المفاتيح CONTROL وX ثم ضغط المفتاح y (نعم) عند سؤال المحرر عن الرغبة بحفظ التعديلات على الملف، ثم العودة إلى مسار المشروع بتنفيذ الأمر التالي:


(env) sammy@ubuntu:$ cd ~/django-apps/testsite/

بعد العودة لمسار المشروع، ننفذ الأمر التالي بعد استبدال your-server-ip بعنوان IP الخادم الذي قمنا بتخصيصه في الخطوة السابقة:

(env) sammy@ubuntu:$ python3 manage.py runserver your-server-ip:8000

ثم نقوم بإدخال العنوان http://your-server-ip:8000/ طبعاً بعد استبدال your-server-ip بعنوان IP الخادم، في المتصفح من أجل عرض موقع الويب التجريبي الذي قمنا بإنشائه فيظهر كما يلي:
django-2-testsite.png

وهذا يؤكد على أنه تم تنصيب إطار العمل البرمجي Django بشكل صحيح، وعلى أن مشروعنا التجريبي يعمل بشكل صحيح أيضًا.

بعد الانتهاء من تصفح الموقع نقوم بإيقاف الأمر runserver وذلك بالضغط على المفاتيح CTRL وC، فنعود إلى موجه أوامر بيئتنا الافتراضية.

ثم نقوم بالخروج من البيئة الافتراضية والرجوع إلى موجه أوامر النظام وذلك بتنفيذ الأمر التالي:


(env) sammy@ubuntu:$ deactivate

ملخص:

تم في هذه المقالة شرح طريقة تحديث Python 3 لآخر إصدار لها من مخزن Ubuntu APT، كما تم شرح طريقة تنصيب أداة تنصيب وإدارة الحزم pip 3، والبيئة الافتراضية virtualenv، والإطار البرمجي Django.

 

ترجمة بتصرف للمقال:  [How To Install Django and Set Up a Development Environment on Ubuntu 16.04] لصاحبه Jeremy Morris


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...