أول الخطوات مع Django

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

ما هو جانغو ؟

جانغو (Django) هـو اطـار عمـل (بالإنجليزية يعرف ب framework) لتصميم تطبيقـات الويب حر ومفتوح المصدر مكتوب بلغة البرمجة بايثون وهو يستعمل هندسة البرمجة MVC (Model–View–Controller) فيأخذ سرعته من تلك الهندسة.وما يعنيه إطار عمل هي مجموعة من المكونات الجاهزة التي تسهل عمل المبرمج من ناحيت تسهيل تلك اللغة ومن ناحية أخرى لكي لا يبدأ مشروعه من الصفر.

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

تنصيب جانغو Django في أبونتو أو ديبيان

# apt-get install python-django python-django-doc
لم يكون كثيرا أليس كذالك
وبما أنني أحب عمل الخوادم أترك عمله أخر الشرح

بداية مشروع جانغو Django

قبل البداية أذكر لن أستعمل أي محرر متطور غير أحد محرر لإستخدام الملفات النصية
أول ما يجب عليك عمله عند إستخدام Django هو إنشاء مشروع , وهذا الأخير سنضع فيه ما يسمى تطبيقات وهو ما سيتم عرضه في الويب.
قبل البداية نختار مكان لوضع المشروع إسم المشروع py_hello وعبر الأوامر نكتب
# django-admin startproject py_hello
وبذالك سيقوم بوضع مجلد يحتوي على بعض الملفات
__init__.py هو الملف اﻷول الذي يقرأه python
manage.py يسمح بإدارة المشاريع من إضافة تطبيقات وقواعد بيانات وتشغيل لإختبار التطبيقات
settings.py يحتوي على إعدادات المشروع الرئيسي
urls.py يحتوي على أنماط عناوين المشروع
الغير الجيد أنه بهذه الأشياء لايمكننا عمل أي شيء بما يلزمنا عمل تطبيق واحد على الأقل يحتوي على الكود المحتاج

بداية عمل تطبيق

عندما نحتاج لإضافة تطبيق جديد يلزمنا إستعمال manage.py وهذه المرة التطبيق يسمى hello_app وأمر إضافته على هذا الشكل
# python manage.py startapp hello_app
وهذا الأخير يضيف مجلد في المجلد السابق ويحتوي على ملفات تختلف على السابقة غير ملف التحميل __init__.py
__init__.py ملف الأول المحمل من طرف python
models.py محتواه يتم توجيهه لإحتواء على نماذج التطبيقات وهذه التطبيقات هم عبارة عن class لبيتهون يقومون بترجمة قواعد البيانات
tests.py محتواه هو تجربة التطبيقات
views.py يحتوي على واجهات التطبيقات، وهذه الواجهة يحتاجها بيتهون لإدارة الوظائف المتعلقة بعرض الناتج في صفحة ويب
لإضافة هذا التطبيق إلى المشروع علينا فتح ملف settings.py وإضافته على النحو التالي
INSTALLED_APPS = (
'py_hello.hello_app',
)

عمل رسالة ترحيبية مرحبا بالعالم

دائما وأبدا قاعدة بداية لغة برمجة هي مرحبا بالعالم (إذا تركو إلى الإختيار ستكون مرحبا بالنوم)
علينا فتح الملف views.py وهو المتخصص في واجهات التطبيقات ونضيف أكواد
# -*- coding: utf-8 -*-
from django.shortcuts import render_to_response
def hello (request):
"""Hello view function."""
return render_to_response ('hello.html',
{ 'hello_msg' : 'مرحبا بالعالم' })

الدالة render_to_response تستخدم قوالب للعمل وسيتم شرح عمل قالب بعد هذا الوقفة الإعلانية 🙂

إستعمال القوالب

أضن لا أحد يطيق وقفة إعلانية هههه.عند إستعمال Django نجد أن له لغة تخصه في إستخدام القوالب، في أساسا هم عبارة عن ملفات HTML مع فتح مفاتيح مزدوجة لإضهار إرسال معلومات ستملئ ذالك المكان
حليا نوجد في مجلد hello_app نقوم بوضع مجلد أخر فيه يوضح إسمه نسميه templates ونقوم بوضع ملف hello.html ونقوم بفتحه لوضع
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="ar">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>{{ hello_msg }}</title>
</head>
<body>
<h1>{{ hello_msg }}</h1>
</body>
</html>

والأن علينا إضافة هذا المكان للمشروع عبر إدراجه في settings.py
TEMPLATE_DIRS = (
'hello_app/templates'
)

عمل نمط للعناوين

عبر urls.py علينا إعطاء مكان للوصول إلى التطبيق، وكما قلنا سابقا فهذا الملف الذي يتم سؤاله عن هذه المعطيات وهي أنماط العناوين لكي يتم تحميل الموقع الويب
نغير ليصبح
# -*- coding: utf-8 -*-
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'', 'py_hello.hello_app.views.hello'),
)

تجربة عمله

تجربة عمله عبر أمر يقوم بتحميل سيرفير خاص عبر منفذ محدد
# python manage.py runserver

إستخدام Django لسرفير

سنقول وضعنا هذا المشروع في /var/www ليتم معاينته من طرف الأخرين
نقوم بفتح ملف الإعدادات الخاص ب أباتشي
# vim /etc/apache2/sites-available/default
ونضيف فوق ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Location "/py_hello/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE py_hello.settings
PythonOption django.root /py_hello
PythonDebug On
PythonPath "['/var/www/'] + sys.path"
</Location>

هذا فان اخطأت فمن نفسي ومن الشيطان وان اصبت فمن الله عز وجل
بالتوفيق

محمد حنين

الإسم الكامل محمد حنين أحد geek من أمد طويل ، مطور ويب، محب للحرية، مستعمل نضام لينوكس، وأخيرا مجرم باللغة العربية للأسف في وقتها. معلومات أكثر عني أو الإتصال بي Mohammed Hanine

You may also like...

2 تعليقان

  1. يقول أمين:

    بارك الله فيك اخي على الشرح،
    أتمنى أن تواصل مع هذه ال framework
    🙂

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *