تعلم كيفية إنشاء مدونة باستخدام Django خطوة بخطوة ( الجزء الاول )
هذا البرنامج التعليمي هو شرح تفصيلي لإنشاء مدونة باستخدام Django. هذا البرنامج التعليمي مكتوب للمبتدئين ويتم إعداده من وجهة نظر المبتدئين.
للقيام بهذا البرنامج التعليمي ، يجب أن تكون قد قمت بتثبيت أحدث إصدار من Python و VS Code Editor. سنقوم بهذا البرنامج التعليمي على نظام Mac ، لكن الخطوات الخاصة بنظامي التشغيل Windows و Linux لن تكون مختلفة كثيرا. سنستخدم أيضا Tailwind CSS للتصميم وبعض الأدوات الأخرى التي سأغطيها أثناء البرنامج التعليمي.
انشاء مشروع مدونة باستخدام Django
لإنشاء مدونة باستخدام Django ، قم أولا بإنشاء مجلد لمشروعك. افتح محطة طرفية (أو موجه الأوامر في Windows) وقم بتشغيل الأوامر التالية واحدا تلو الآخر:
pip install virtualenv
virtualenv env
source env/bin/activate # this command might be different on windows
pip install django
pip freeze > requirements.txt
django-admin startproject blogpost
شرح الأوامر الأساسية في الكود السابق.
البيئات الافتراضية virtualenv هي بيئات معزولة عن Python تستخدم للعمل في مجموعة متنوعة من المشاريع. كما ترى ، نقوم أولا بتثبيت pip install virtualenv ، ثم نقوم بتشغيل الأمر virtualenv وتنشيطه (source env / bin / activate).
ثم نقوم بتثبيت Django باستخدام الأمر pip install django ، وباستخدام الأمر pip freeze ، > requirements.txt نحفظ قائمة الحزم في البيئة في ملف يسمى requirements.txt.
الأمر الأخير django-admin startproject blogpost . إنشاء مشروع Django بالاسم المحدد. لقد قمت بتسمية مشروعي BlogPost.
تنفيذ عمليات الترحيل في Django
يجب أن يصبح تنفيذ عمليات الترحيل ممارسة مألوفة بالنسبة لك ، ولكن إذا كنت لا تزال لا تعرف سبب تنفيذها ، باختصار ، عمليات الترحيل هي الطريقة التي يسجل بها Django التغييرات التي تم إجراؤها على النماذج.
لتنفيذ الترحيل في البرنامج التعليمي لبناء المدونة باستخدام Django، قم بتشغيل الأوامر التالية في المحطة الطرفية واحدا تلو الآخر:
python manage.py migrate
سترى الآن ملفا جديدا يسمى dbsqlite3 ، وهو قاعدة البيانات. داخل فولدر المشروع.
ثم قم بتشغيل هذا الأمر:
python manage.py runserver
يجب أن تكون قادرا الآن على عرض الصفحة التي تم تحميلها على عنوان http://127.0.0.1:8000. كما في الصورة التالية:
إنشاء التطبيقات في Django
لإنشاء تطبيق جديد ، قم أولا بإيقاف الخادم بالضغط على مفاتيح Ctrl + C من لوحة المفاتيح ، ثم قم بتشغيل الأمر التالي في المحطة الطرفية:
python manage.py startapp nameapp
على سبيل المثال ، لقد أنشأت تطبيقي على النحو التالي:
python manage.py startapp posts
بمجرد القيام بذلك ، انتقل إلى مجلد blogpost وافتح ملف settings.py. قم بالتمرير إلى أسفل الصفحة للوصول إلى قسم INSTALLED_APPS وأضف اسم تطبيقك إلى القائمة.
كما في الكود التالي:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'posts',
# أضف اسم التطبيق الخاص بك هنا
]
من خلال إضافة اسم التطبيق إلى هذه القائمة ، يدرك Django أنه يجب عليه تحميل التطبيق في وقت إطلاق المشروع.
انشاء النماذج في Django
النماذج هي الطريقة التي يصل بها Django إلى البيانات وإدارتها وتخزينها باستخدام كائنات Python. نظرا لأننا نبني مدونة ، فإن نماذجنا ستمثل ما تمتلكه المدونة عادة ، مثل المؤلفين والفئات ومنشورات المدونة.
أولا ، في ملف models.py ، أدخل الدالة get_user_model ، وهي وظيفة مساعدة ل Django للوصول إلى نموذج مستخدم المشروع. أضف أيضا وحدة Django Models في أعلى الملف:
from django.contrib.auth import get_user_model
from django.db import models
User = get_user_model()
نموذج المؤلف ( Author )
لنبدأ بنموذج المؤلف ( Author ) بتفصيل بسيط ؛ كل ما نحتاجه هو اسم وصورة للمؤلف:
class Author(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
profile_picture = models.ImageField()
def __str__(self):
return self.user.username
نموذج الفئة Category
يتطلب نموذج الفئة عنوانا وعنوانا فرعيا وصورة مصغرة ورابط. الرابط هو معرف قصير يحتوي فقط على أحرف أو أرقام أو شرطات سفلية أو شرطات ، ويستخدم بشكل شائع في عناوين URL. على سبيل المثال ، بدلا من http://127.0.0.1:8000/posts/1 العنوان ، يمكننا استخدام عنوان http://127.0.0.1:8000/post/my-first-blog-post يبدو أكثر قابلية للقراءة.
class Category(models.Model):
title = models.CharField(max_length=20)
subtitle = models.CharField(max_length=20)
slug = models.SlugField()
thumbnail = models.ImageField()
def __str__(self):
return self.title
نموذج المنشور Post
أخيرا ، سنقوم بإنشاء نموذج المنشور ( Post ). يحتوي هذا النموذج على مزيد من المعلومات ، لذا فهو يحتوي على مزيد من التفاصيل. كل شيء في هذا النموذج موضح جيدا من خلال أسمائهم.
class Post(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField()
overview = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
content = models.TextField()
author = models.ForeignKey(Author, on_delete=models.CASCADE)
thumbnail = models.ImageField()
categories = models.ManyToManyField(Category)
featured = models.BooleanField()
def __str__(self):
return self.title
لمزيد من المعلومات حول ManyToManyField ، يمكنك زيارة وثائق Django: ManyToManyField
تنفيذ عمليات الترحيل في Django
بعد تطبيق التغييرات على النماذج، لتسجيل هذه التغييرات في قاعدة البيانات، أغلق الخادم باستخدام ctrl+C ثم قم بتشغيل الأوامر التالية:
python manage.py makemigrations
python manage.py migrate
في كل مرة تقوم فيها بإجراء تغيير على النماذج، ستحتاج إلى استخدام هذه الأوامر لإجراء تغييرات على قاعدة البيانات
انشاء لوحة الإدارة حول باستخدام Django
لاستخدام لوحة إدارة Django ، نحتاج أولا إلى تحرير ملف admin.py. في هذا الملف ، تحتاج إلى إدخال النماذج والمكتبات المطلوبة على النحو التالي:
from django.contrib import admin
from .models import Author, Category, Post
admin.site.register(Author)
admin.site.register(Category)
admin.site.register(Post)
إنشاء مستخدم متميز ( Superuser ) في Django
الخطوة التالية هي إنشاء مستخدم متميز. Superuser هو مستخدم مسؤول يمكنه بسهولة إجراء تغييرات في لوحة إدارة Django. يجب أن يكون إنشاء مستخدم متميز خطوة قياسية في أي مشروع Django. سيتم عرض أي شيء نحدده في النماذج على صفحة مسؤول Django ، ويمكنك الوصول إليه باستخدام معلومات تسجيل الدخول إلى Superuser.
لإنشاء مستخدم متميز، قم أولا بإيقاف الخادم باستخدام ctrl+C ثم قم بتشغيل الأوامر التالية في الوحدة الطرفية:
python manage.py createsuperuser
اتبع الخطوات ، مثل اسم المستخدم وكلمة المرور والبريد الإلكتروني وما إلى ذلك. يمكن تخصيص هذه المعلومات حسب اختيارك. تأكد من تدوين هذه المعلومات في مكان ما. ولكن إذا نسيتهم ، فيمكنك دائما إنشاء مستخدم متميز جديد.
يجب أن تكون قادرا الآن على الوصول إلى صفحة المسؤول عن طريق تسجيل الدخول إلى http://127.0.0.1:8000/admin/login. هنا ، سترى جميع الفئات التي قمت بإنشائها في ملف models.py. يمكنك البدء بإضافة محتوى إلى أقسام المؤلف والفئة والمنشورات.
الملف views.py في Django
الملف views.py هو المكان الذي يحدث فيه منطق البرمجة والعملية الرئيسية للمشروع. هذا الجزء هو أحد أهم أجزاء المشروع. في ملف views.py ، نحتاج أولا إلى إدراج دالة العرض والنماذج التي أنشأناها بالفعل:
from django.shortcuts import render
from .models import Post, Category, Author
انشاء دالة الصفحة الرئيسية في ملف views.py
يحدد هذا القسم طريقة العرض في صفحة التفاصيل لكل مشاركة في المدونة:
def post(request, slug):
post = Post.objects.get(slug=slug)
context = {
'post': post,
}
return render(request, 'post.html', context)
في هذه الدالة، يتم استلام الفئات والمشاركات المميزة والمشاركات الحديثة وإرسالها إلى قالب homepage.html في شكل قاموس ( dictionary ).
انشاء دالة صفحة تفاصيل النشر في ملف views.py
يحدد هذا القسم طريقة العرض في صفحة التفاصيل لكل مشاركة في المدونة:
def post(request, slug):
post = Post.objects.get(slug=slug)
context = {
'post': post,
}
return render(request, 'post.html', context)
تعثر هذه الدالة على منشور معين باستخدام الرابط الخاص بها وترسل المعلومات إلى نمط post.html.
انشاء دالة صفحة من نحن في ملف views.py
إذا كنت ترغب في إضافة صفحة نبذة عنا إلى المشروع ، فيمكنك استخدام هذه الدالة:
def about(request):
return render(request, 'about_page.html')
تقوم هذه الدالة بتحميل قالب about_page.html فقط.
انشاء دالة صفحة الفئة في ملف views.py
يستخدم هذا القسم لعرض المشاركات المتعلقة بفئة معينة:
def category_post_list(request, slug):
category = Category.objects.get(slug=slug)
posts = Post.objects.filter(categories__in=[category])
context = {
'posts': posts,
}
return render(request, 'post_list.html', context)
تعثر هذه الدالة على جميع المشاركات المتعلقة بفئة معينة وترسلها إلى قالب post_list.html.
انشاء دالة صفحة جميع المشاركات في ملف views.py
أخيرا ، عرض جميع المشاركات:
def allposts(request):
posts = Post.objects.order_by('-timestamp')
context = {
'posts': posts,
}
return render(request, 'all_posts.html', context)
تقوم هذه الدالة بفرز جميع المنشورات حسب وقت النشر وإرسالها إلى قالب all_posts.html .
باستخدام هذه الدوال ، يمكنك إدارة منطق العرض لصفحات مدونتك المختلفة بشكل جيد. تتلقى هذه الوظائف المعلومات المطلوبة من النماذج وترسلها إلى تنسيقات HTML لعرضها في واجهة المستخدم.
إعداد عناوين URL في Django
لإعداد عناوين URL في مشروع Django ، تحتاج إلى الانتقال إلى ملف urls.py وإدخال ما يلي في بداية الملف:
from django.conf import settings
from django.contrib import admin
from posts.views import homepage, post, about, postlist, allposts
from django.urls import path
تحديد مسارات عناوين URL في Django
نحتاج الآن إلى تحديد مسارات طرق العرض التي أنشأناها في الأقسام السابقة. تستخدم عمليات إعادة التوجيه هذه لإعادة توجيه عناوين URL إلى دوال العرض المناسبة داخل تطبيق Django. أخيرا ، سيبدو رمز urlpatterns كما يلي:
urlpatterns = [
path('admin/', admin.site.urls),
path('', homepage, name='homepage'),
path('post//', post, name='post'),
path('about/', about, name='about'),
path('postlist//', postlist, name='postlist'),
path('posts/', allposts, name='allposts'),
]
تضمن عمليات إعادة التوجيه هذه إعادة توجيه كل عنوان URL معين إلى طريقة العرض الخاصة به.
إنشاء القوالب في Django
القوالب هي المكان الذي يتم فيه تخزين عرض الواجهة الأمامية لمدونتنا. هذا هو المكان الذي يتم فيه تخزين HTML والمكونات الأخرى المتعلقة بواجهة المستخدم.
- إنشاء مجلد من القوالب: قم بإنشاء مجلد يسمى القوالب في جذر مشروعك.
- إنشاء ملفات HTML داخل مجلد القوالب: قم بإنشاء الملفات التالية داخل مجلد القوالب:
- homepage.html
- footer.html
- base.html
- navbar.html
- post_list.html
- all_posts.html
- about_page.html
- post.html
عذراً، حتي لانطيل عليكم سنقوم بشرح باقي موضوع ( إنشاء مدونة باستخدام Django ) في المقال التالي.
الكلمات الدلالية
مقدمة في دجانجو
شارك المقال
عن الكاتب

أحمدُ عُبَيْد
مرحباً، أنا أحمد عبيد مبرمج عربي مصري. أود أن أضع تجاربي وخبراتي في تعلم بايثون على هذا الموقع حتى يكون مرجعاً لي ولكم أيضاً.
عفواً..قم بتسجيل الدخول اولاً..حتي تستطيع التعليق