Django هو إطار عمل ويب مجاني ومفتوح المصدر مبني بلغة Python. تم نشر Django لأول مرة في عام 2005، وهو يجسد شعار “التطوير السريع والتصميم النظيف والعملي.” يمكن لإطار العمل، عند نشره على خادم ويب، إنتاج واجهة ويب أمامية بسرعة بميزات غنية وأمان وقابلية للتوسع.
يعتمد أي تطبيق ويب على قواعد البيانات لمحتواه. يدعم Django، لكونه إطار عمل حديث، عدداً من برامج قواعد البيانات القياسية، على سبيل المثال، PostgreSQL, SQLite, MySQL، إلخ. سيوضح هذا الدليل كيفية توصيل تطبيق Django بقاعدة بيانات على MySQL.
المتطلبات الأساسية
لمتابعة هذا البرنامج التعليمي، يجب عليك تلبية شروط مسبقة معينة قبل الانتقال إلى Django والاتصال بقاعدة البيانات:
- خادم ويب مناسب. في هذا الدليل، سنستخدم Ubuntu server.
- بيئة تطوير Python 3 مهيأة بشكل صحيح.
- تطبيق قاعدة بيانات. إليك دليل مفصل حول تثبيت واستخدام MySQL.
تثبيت وتكوين Python 3
تمت كتابة Django بلغة Python. يتطلب تشغيل أي تطبيق Python تثبيت ملفات Python الثنائية في النظام. يأتي Ubuntu مع Python مثبتاً بشكل افتراضي. هنا، سنستخدم Python 3. من الطرفية، قم بتشغيل الأوامر التالية. أولاً، قم بتحديث ذاكرة التخزين المؤقت لـ APT وترقية (إذا كانت متوفرة) جميع الحزم المثبتة:
|
1 |
$ sudo apt update && sudo apt upgrade -y |
يتوفر Python 3 مباشرة من خوادم حزم Ubuntu الرسمية. الحزمة
python-is-python3 تنشئ رابطاً برمجياً مرناً ثنائياً لـ python إلى
python3 لسهولة الاستخدام:
|
1 |
$ sudo apt install python3 python-is-python3 |
بعد ذلك، تحقق مما إذا كان التثبيت ناجحاً:
|
1 2 |
$ python3 --version $ python --version |
بعد ذلك، نحتاج إلى pip. وهو مدير حزم Python القياسي. وهو مسؤول عن إدارة مكتبات Python الإضافية التي ليست جزءاً من المكتبة القياسية. لاحظ أننا نقوم بتثبيت pip3 (لـ Python 3):
|
1 |
$ sudo apt install python3-pip |
أخيراً، نحتاج إلى بعض الحزم الإضافية لبيئة برمجة قوية:
|
1 |
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev |
تثبيت وتكوين MySQL
سيوضح هذا القسم بإيجاز كيفية تثبيت وتكوين MySQL. وهو متوفر في مستودعات حزم Ubuntu الافتراضية:
|
1 |
$ sudo apt install mysql-server |
إذا كان التثبيت ناجحاً، فسيبدأ تشغيل MySQL في الخلفية. تحقق مما إذا كان يعمل بشكل صحيح:
|
1 |
$ systemctl status mysql |
خادم MySQL قيد التشغيل الآن. يمكننا الآن الانتقال بأمان إلى تطوير تطبيق Django الخاص بنا.
العمل مع Django
-
إنشاء تطبيق Django النموذجي
يتطلب العمل الأساسي لتطبيق الويب الخاص بنا الهيكل الأساسي لمشروع Django. وهو يحتوي على جميع الأدوات والمكتبات اللازمة لإنشاء تطبيق ويب قوي. أولاً، سنقوم بإنشاء دليل مخصص لتطبيق Django الخاص بنا. يوصى بتسمية الدليل باسم ذي معنى ومتوافق مع التطبيق الذي نحن بصدد بنائه. في هذا العرض التوضيحي، سنقوم بتسميته myDemoApp:
|
1 |
$ mkdir -pv myDemoApp |
نحتاج إلى وحدة venv الخاصة بـ Python لإنشاء بيئة افتراضية داخل الدليل. قم بتثبيت الوحدة باستخدام APT:
|
1 |
$ sudo apt install python3-venv |
بعد ذلك، انتقل إلى الدليل وأنشئ بيئة افتراضية. للتوضيح، قمنا بتسمية البيئة demoapp_env:
|
1 |
$ python3 -m venv demoapp_env |
بعد ذلك، قم بتنشيط البيئة الافتراضية عن طريق تشغيل برنامج activate النصي:
|
1 |
$ . demoapp_env/bin/activate |
سنقوم الآن بتثبيت Django داخل هذه البيئة الافتراضية المخصصة. Pip بتنزيل وتثبيت بعض المكونات الإضافية:
|
1 |
$ pip install django |
تم تثبيت Django وهو جاهز للاستخدام. استدعِ الأمر django-admin لإنشاء مشروع Django جديد. بعد ذلك، امنح التطبيق اسماً مناسباً:
|
1 |
$ django-admin startproject demoapp |
سيقوم بإنشاء مشروع تجريبي يحتوي على ملفات ومجلدات المشروع اللازمة في مكانها:
|
1 |
$ ls -l |
هيكل المشروع جاهز. بعد ذلك، نحتاج إلى تهيئته بشكل صحيح لتحقيق هدفنا.
-
تعديل إعدادات مشروع Django
يتم تخزين جميع تكوينات المشروع في الملف settings.py. وهو موجود داخل دليل مشروع Django. سنبدأ بتعيين منطقة زمنية مناسبة وإدراج المضيفين الذين يمكنهم الاتصال بتطبيق Django. افتح ملف التكوين في محرر نصوص:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
قم بالتمرير لأسفل البرنامج النصي وابحث عن الإدخال TIME_ZONE. للتوضيح، تم تعيين المنطقة الزمنية على America/New_York:
|
1 |
$ TIME_ZONE = 'America/New_York' |
كمرجع، سيقوم الأمر التالي بطباعة جميع المناطق الزمنية المدعومة في Linux:
|
1 |
$ timedatectl list-timezones |
بعد ذلك، قم بالتمرير إلى الإدخال ALLOWED_HOSTS. وهو يتحكم في الأجهزة التي يمكنها الوصول إلى التطبيق. للتوضيح، يحتوي فقط على localhost:
|
1 |
$ ALLOWED_HOSTS = ['localhost'] |
ثم احفظ الملف وأغلق المحرر. سيقوم الأمر التالي بتطبيق التغييرات:
|
1 |
$ python manage.py migrate |
الآن، نحتاج إلى إنشاء حساب مسؤول لتطبيق الويب. سيتم استخدام هذا الحساب للوصول إلى واجهة إدارة Django. قم بتشغيل الأمر التالي:
|
1 |
$ python manage.py createsuperuser |
سيطلب اسم المستخدم والبريد الإلكتروني وكلمة المرور. التطبيق جاهز الآن للاتصال بقاعدة البيانات.
اتصال MySQL
-
تثبيت موصلات ومكتبات تطوير MySQL
لدمج MySQL في تطبيق Django، نحتاج إلى بعض مكتبات Python 3 الإضافية التي ستوفر الأدوات اللازمة. سنستخدم موصل قاعدة البيانات mysqlclient. وهو تفرع من MySQLdb.
تأكد من أن لدينا python3-dev مثبتًا:
|
1 |
$ sudo apt install python3-dev |
نحتاج أيضًا إلى بعض ترويسات ومكتبات Python و MySQL الإضافية:
|
1 |
$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev |
بعد اكتمال التثبيت، استخدم pip لتثبيت وحدة Python mysqlclient. قد يؤدي ذلك إلى إنشاء بعض رسائل الخطأ التي يمكن تجاهلها:
|
1 |
$ pip install mysqlclient |
-
تهيئة قاعدة بيانات مخصصة
الخطوة التالية هي تهيئة قاعدة بيانات مخصصة ومستخدم قاعدة بيانات لتطبيق Django الخاص بنا. قم بتشغيل واجهة تفاعل MySQL كمستخدم root :
|
1 |
$ sudo mysql -u root |
للتحقق من جميع قواعد البيانات المتاحة حاليًا، قم بتشغيل الاستعلام التالي:
|
1 |
$ SHOW DATABASES; |
لنقم بإنشاء قاعدة بيانات مخصصة لتطبيق Django الخاص بنا. امنحها اسمًا مناسبًا يتوافق مع اسم المشروع:
|
1 |
$ CREATE DATABASE demoapp_data; |
ثم، تحقق من الإنشاء:
|
1 |
$ SHOW DATABASES; |
الآن، قم بإنشاء مستخدم MySQL مخصص. سنقوم بتهيئة هذا المستخدم كمالك لقاعدة البيانات. سيستخدم تطبيق Django بيانات اعتماد هذا المستخدم للعمل مع قاعدة بيانات MySQL:
|
1 |
$ CREATE USER 'demoapp_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password123'; |
امنح المستخدم demoapp_user الصلاحيات الكاملة على قاعدة البيانات demoapp_data:
|
1 |
$ GRANT ALL ON demoapp_data.* TO 'demoapp_user'@'%'; |
لتطبيق تغييرات الأذونات، أعد تحميل جداول صلاحيات MySQL:
|
1 |
$ FLUSH PRIVILEGES; |
قاعدة البيانات جاهزة الآن للاتصال بتطبيق Django.
-
توصيل قاعدة البيانات بتطبيق Django
أخيرًا، سنقوم بتهيئة تطبيق Django لاستخدام قاعدة البيانات لتخزين البيانات. افتح البرنامج النصي للتكوين settings.py:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
قم بالتمرير لأسفل إلى الإدخال DATABASES وأدخل الكود التالي:
|
1 2 3 4 5 6 7 8 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': '/etc/mysql/my.cnf', }, } } |
احفظ الملف وأغلق المحرر. الخطوة التالية هي إعداد ملف التكوين الموصوف في الكود سابقًا. استخدم sudo لفتح ملف النص في الموقع الموصوف:
|
1 |
$ sudo nano /etc/mysql/my.cnf |
سيحتوي ملف التكوين هذا على معلومات حول قاعدة البيانات المخصصة لـ Django والمستخدم الذي أنشأناه في خادم MySQL. أضف السطور التالية في نهاية الملف:
|
1 2 3 4 5 |
[client] database = demoapp_data user = demoapp_user password = password123 default-character-set = utf8 |
لتطبيق التغييرات، يجب علينا إعادة تشغيل خادم MySQL:
|
1 2 |
$ sudo systemctl daemon-reload $ sudo systemctl restart mysql |
-
اختبار اتصال MySQL
حان الوقت الآن للتحقق مما إذا كان اتصال MySQL يعمل بشكل صحيح. إذا كان خادم Django يعمل دون مشاكل، فإن الاتصال يعمل بشكل جيد. خلاف ذلك، هناك خطأ ما. أولاً، قم بتطبيق جميع التغييرات التي تم إجراؤها على مشروع Django:
|
1 |
$ python manage.py migrate |
الآن، انتقل إلى دليل المشروع التالي وابدأ تشغيل خادم Django:
|
1 2 |
$ cd ~/myDemoApp/demoapp $ python manage.py runserver <server_ip_address>:8000 |
بعد ذلك، حاول الوصول إلى الخادم من متصفح الويب:
|
1 |
$ http://<server_ip_address>:8000 |
ها قد وصلنا! لقد انتقلنا بنجاح إلى صفحة نجاح Django. يؤكد هذا أيضًا أن اتصال MySQL يعمل بشكل صحيح. بعد انتهاء المهمة، يمكنك الخروج بأمان من البيئة الافتراضية:
|
1 |
$ deactivate |
أفكار نهائية
في هذا الدليل، تعلمت أساسيات الجمع بين Django و MySQL معًا. لقد أنشأنا تطبيق Django وعرضنا كيفية توصيله بقاعدة بيانات MySQL. يكمن السر في ملف تكوين Django settings.py. قمنا أيضًا بتعديل بعض الإعدادات الأساسية مثل ALLOWED_HOSTS و TIME_ZONE. يتميز Django بمرونة لا تصدق. إلى جانب MySQL، فإنه يدعم أيضًا خوادم SQL الأخرى مثل PostgreSQL، ومحركات الخوادم مثل Nginx، وما إلى ذلك.
يمكنك أيضًا الاطلاع على أدلتنا حول أفضل الممارسات لتثبيت Django وتكوينه والعمل معه:
- تثبيت إطار عمل ويب Django على Ubuntu 20.04
- إعداد Django مع PostgreSQL و Nginx و Gunicorn على Ubuntu 20.04
- إنشاء نماذج Django: دليل تعليمي
حوسبة سعيدة!





التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.