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

تنشيط واجهة مدير جانغو والاتصال بها


هدى جبور

هذا المقال هو جزء من سلسلة مقالات سابقة، حيث تعلمت في المقالات السابقة كيفية إنشاء تطبيق جانغو وربطه بقاعدة بيانات MySQL وإنشاء نماذج للمنشورات والتعليقات داخل تطبيق الويب، وستتعلم في مقال اليوم كيفية الاتصال بموقع مُدير جانغو Django admin site وتنشيطه لكي تتمكن من إدارة تطبيق جانغو الخاص بك على الويب (المُدونة التي أنشأتها في المقالات السابقة).

موقع مُدير جانغو يمتلك واجهة تُسمى واجهة مُدير جانغو Django admin interface تُسهل عليك العمل وتمنحك القدرة على إدارة موقعك أنت وأي مستخدم آخر لديه الصلاحيات في ذلك.

المتطلبات الأساسية

هذا المقال جزء من سلسلة مقالات قصيرة حول كيفية إنشاء تطبيق ويب ليكون بمثابة مدونة وإليك فهرس كامل السلسلة:

إذا لم تقرأ المقالات السابقة، فيجب أن تعلم أننا نفترض ما يلي:

  • لديك نسخة جانغو 3 أو أحدث.
  • وصلت تطبيقك بقاعدة بيانات (نحن نستخدم MySQL).
  • أنك تعمل على نظام تشغيل مبني على يونيكس Unix. يُفضل أن يكون خادمًا سحابيًّا أبونتو Ubuntu، لأنه النظام الذي تم إجراء الاختبار عليه. إذا كنت تريد العمل على بيئة مشابهة، فيجب عليك إعداد جانغو عليها.

يتعامل هذا المقال مع واجهة مُدير جانغو، وبالتالي قد تتمكن من اتباع هذا الدرس، حتى لو كان لديك إعداد مختلف.

الخطوة الأولى - تنشيط المدير Admin

كما في المقالات السابقة؛ عليك أولًا تنشيط بيئة بايثون الخاصة بك والانتقال إلى المجلد الجذر للتطبيق:‏

$ cd ~/my_blog_app
$ . env/bin/activate

يجب عليك الآن التأكد من أن تطبيقك موجود في القائمة INSTALLED_APPS في ملف الإعدادات settings.py، لذا انتقل إلى المجلد الذي يحتوي على هذا الملف:

(env) sammy@ubuntu: $ cd ~/my_blog_app/blog/blog/

افتح ملف الإعدادات بواسطة أي محرر تريده (سنستخدم هنا المحرر nano):

(env) sammy@ubuntu: $ nano settings.py

إذا لم تجد تطبيقك في القائمة، أضفه من خلال django.contrib.admin.

بعد تنفيذ الأمر السابق يجب أن يكون قسم INSTALLED_APPS من الملف يشبه الملف التالي، حيث أن blogsite يمثّل اسم التطبيق الذي أنشأناه في المقالات السابقة.

...
# Application definition
INSTALLED_APPS = [
    'blogsite',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
...

في حال أجريت أيّة تعديلات، فيجب عليك حفظ الملف وإغلاقه (إذا كنت تستخدم المحرر nano، اضغط على CTRL+X ثم Y ثم ENTER).

افتح الآن ملف العناوين urls.py باستخدام محرر النصوص الذي تستخدمه:

(env) sammy@ubuntu: $ nano urls.py

يجب أن يكون الملف يشبه التالي:


"""
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

إذا كان الملف عندك يختلف عن الملف السابق، فانسخ أسطر هذا الملف من هنا، ولصقها في ملف العناوين عندك.

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

الخطوة الثانية - تنشيط تطبيق المدير

يجب أن يتم الآن تهجير النماذج إلى قاعدة البيانات، لكي تتعرّف على نماذج المُدير التي تمت إضافتها. انتقل إلى المجلد الذي يوجد فيه ملف الإدارة manager.py:

(env) sammy@ubuntu: $ python manage.py createsuperuser

تذكر أنّه يتوجب عليك دائمًا تنفيذ أمر التهجير migrate عندما تُجري أي تعديلات على النماذج:

(env) sammy@ubuntu: $python manage.py migrate

يجب أن تحصل على خرج مشابه للخرج التالي عند تنفيذ أمر التهجير في حال لم تٌجري تعديلات الملفات السابقة:

Operations to perform:
  Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
  No migrations to apply.

أما لو كنت قد أجريت تعديلات على النماذج، فسيخبرك بأنه نفذ عمليات التهجير اللازمة.

شغّل الخادم الآن من خلال الأمر التالي (استبدال 0.0.0.0 بعنوان IP الخاص بك):

(env) sammy@ubuntu: $python manage.py runserver 0.0.0.0:8000

ثم انتقل إلى عنوان URL الخاص بلوحة التحكم في المتصفح الذي تستخدمه (تأكد من ادخال عنوان IP الخاص بخادمك).

http://your-server-ip:8000/admin/

ستظهر لك شاشة تسجيل الدخول التالية:

django-admin-login01.png

بذلك نكون نجحنا في تنشيط التطبيق أو تطبيق المٌدير admin app، لكن يجب أن يكون لدينا حساب مُدير لكي نتمكن من الدخول. إذا لم يكن لديك حساب فتابع الخطوة التالية.

الخطوة الثالثة - إنشاء حساب مُدير أساسي Admin Super-User

افتح نافذة جديدة للطرفية للاتصال بالخادم، أو أوقف تطبيق جانغو بالضغط على CTRL+C لكي تتمكن من العمل ضمن البيئة الخاصة بك. افتح ملف الإدارة manager.py:

(env) sammy@ubuntu: $ python manage.py createsuperuser

بعد ذلك سيطلب منك تحديد معلومات المستخدم، مثل اسم المستخدم والبريد الإلكتروني وكلمة المرور. هنا سنسميه admin_user وسيكون البريد sammy@example.com وكلمة المرور admin123.

Username (leave blank to use 'root'): admin_user
Email address: sammy@example.com

بعد ذلك سيطلب منك إدخال كلمة المرور مرتين (للتأكيد). لذا ادخل الكلمة الأولى ثم اضغط ENTER ثم أعد كتابتها واضغط ENTER.

Password: 
Password (again):

الآن أصبح لديك حساب مُدير أساسي، وأصبح بإمكانك تسجيل الدخول. بعد تسجيل الدخول بنجاح ستظهر لك الصورة التالية:

django-admin-panel02.png

بعد ذلك تحتاج إلى ربط تطبيقك بلوحة الإدارة admin panel.

الخطوة الرابعة - إنشاء أنماط عناوين للنشر والتعليق

حتى الآن لازالت لوحة الإدارة لا تحتوي على تطبيقك (تطبيق المدونة)، لذا يجب أن تضيفها وتسجلها مع النماذج المرتبطة بها (Comment و Post). لإنجاز ذلك، أنشئ ملفًا فارغًا يُسمى urls.py في المجلد blogsite:

(env) sammy@ubuntu: $ touch ~/my_blog_app/blog/blogsite/urls.py

أضف في هذا الملف نمط عنوان URL لتطبيقك، لكي تتمكن من الوصول إليه عبر واجهة المٌدير. انتقل إلى المجلد الذي يحتوي على ملف العناوين urls.py الذي أنشأته:

(env) sammy@ubuntu: $ cd ~/my_blog_app/blog/blogsite/

ثم افتح الملف باستخدام محرر النصوص:

(env) sammy@ubuntu: $ nano urls.py

أضف التعليمات البرمجية التالية إليه:

from django.urls import path
from . import views
urlpatterns = [
    path('$/', views.posts, name='posts'),
    path('$/', views.comments, name='comments'),
]

بذلك نكون انتهينا من إضافة أنماط العناوين اللازمة ليتمكن التطبيق من الوصول إلى العروض views (لم نتحدث عنها في المقالات السابقة، لكن سنغطيها لاحقًا) والمنشورات Posts والتعليقات Comments.

الخطوة الخامسة - ربط تطبيق المدونة بحساب المدير

ستتمكن من رؤية روابط كل المنشورات والتعليقات من داخل لوحة التحكم عند ربط المدونة بواجهة المُدير. في الوقت الحالي لا توجد تعليقات أو منشورات في مدونتك، لذا لن ترى إلا روابط للمجموعات Groups والمستخدمين Users.

لربط المنشورات والتعليقات بحساب المُدير، يجب عليك تسجيل النماذج الخاصة بكل منهما داخل ملف المُدير لموقعك في المجلد blogsite. انتقل إلى المجلد:

(env) sammy@ubuntu: $ cd ~/my_blog_app/blog/blogsite

افتح بعد ذلك ملف المُدير admin.py باستخدام محرر النصوص الذي تفضله:

(env) sammy@ubuntu: $ nano admin.py

سيكون بهذا الشكل:

from django.contrib import admin

# Register your models here.

الآن أضف إليه التعليمات البرمجية اللازمة لتسجيلهم كما يلي:

from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment


admin.site.register(Post)
admin.site.register(Comment)

احفظ الملف واغلقه عندما تنتهي، وبذلك تكون قد سجلت النموذجين داخل لوحة التحكم.

الخطوة السادسة - تحقق من أن عملية الربط تمت بنجاح

بعد إضافة الشيفرة البرمجية اللازمة لتسجيل النماذج في ملف المُدير، شغّل الخادم مرة أخرى من خلال:

http://your-server-ip:8000/admin

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

django-admin-models-added03.png

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

(env) sammy@ubuntu: $ deactivate

خاتمة

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

ترجمة -وبتصرف- للمقال How To Enable and Connect the Django Admin Interface لصاحبه 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.


×
×
  • أضف...