لا داعي للقلق لإنشاء الرخويات في Django. قم بتنفيذ إنشاء سبيكة تلقائية لتوفير الوقت وتبسيط سير عملك.

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

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

إنشاء مشروع Django

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

قبل إنشاء مشروع Django ، إنشاء وتنشيط بيئة افتراضية لتثبيت التبعيات اللازمة. بعد تنشيط بيئتك الافتراضية ، اتبع هذه الخطوات لإعداد مشروعك:

  • قم بتثبيت Django باستخدام الأمر pip في سطر الأوامر:
نقطة تثبيت django
  • قم بإنشاء مشروع باستخدام ملف django- مشرف جدوى. سيستخدم هذا البرنامج التعليمي نقطة_المشروع كاسم المشروع.
instagram viewer
بدء مشروع django-admin project_core.
  • أنشئ تطبيقًا باسم وصفات.
وصفات إدارة بيثون
  • أضف تطبيقك إلى التطبيقات المثبتة في مشروعك الإعداد ملف.
INSTALLED_APPS = [
'...'
'وصفات',
]
  • قم بتشغيل التطبيق الخاص بك عن طريق كتابة الأمر التالي في أداة سطر الأوامر:
بيثون MANAGER.py runserver
  • انتقل إلى http://127.0.0.1:8000/ في متصفحك. يجب أن تشاهد هذه الصفحة:
  • قم بتكوين نمط URL في مشروعك urls.py ملف
من django.urls يستورد المسار ، وتشمل

أنماط عنوان url = [
'...',
طريق(''، يشمل("وصفات. عناوين URL"))
]

صنع سبيكة في Django

لإنشاء سبيكة في Django ، تحتاج إلى تضمين حقل سبيكة في نماذجك. اتبع هذه الخطوات لإنشاء سبيكة في Django.

قم بإنشاء نموذج

في الخاص بك نماذج ملف ، قم بإنشاء نموذج جديد وقم بتضمين حقل سبيكة. هذا مثال:

فصلوصفة(عارضات ازياء. نموذج):
الاسم = النماذج. CharField (أقصى طول =225، فارغ =خطأ شنيع، خالية =خطأ شنيع)
المكونات = النماذج. TextField (فارغ =خطأ شنيع، خالية =خطأ شنيع)
التعليمات = النماذج. TextField (فارغ =خطأ شنيع، خالية =خطأ شنيع)
date_created = نماذج. DateTimeField (auto_now =حقيقي)
سبيكة = نماذج. SlugField (خالية = حقيقي، فارغ =حقيقي، فريد =حقيقي)

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

تطبيق الهجرات على النموذج الخاص بك

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

python management.py makemigrations && python management.py الهجرة

سيقوم الأمر أعلاه أولاً بإنشاء ملف ترحيل ثم تحديث قاعدة البيانات عن طريق تنفيذ الإرشادات داخل ملف الترحيل.

أضف البيانات إلى قاعدة البيانات الخاصة بك

قم بتسجيل النموذج الخاص بك عن طريق كتابة ما يلي في ملف admin.py ملف:

من django.contrib يستورد مسؤل
من .عارضات ازياء يستورد وصفة

admin.site.register (وصفة)

بعد ذلك ، افتح أداة سطر الأوامر وأنشئ ملف مستخدم متميز للوحة الإدارة الخاصة بك عن طريق تشغيل هذا الأمر:

بيثون management.py يخلق المستخدم الخارق

سيأخذك الأمر أعلاه عبر الخطوات الموضحة في هذه الصورة:

بعد إنشاء ملف مستخدم متميز، ابدأ خادمك المحلي بالأمر التالي:

بيثون MANAGER.py runserver

بمجرد بدء تشغيل الخادم الخاص بك ، يجب عليك الانتقال إلى http://127.0.0.1:8000/admin/، قم بتسجيل الدخول بالتفاصيل التي استخدمتها لإنشاء ملف مستخدم متميز، وأضف بعض الوصفات يدويًا إلى قاعدة البيانات الخاصة بك. يجب الانتباه إلى حقل سبيكة.

إنشاء طرق عرض لتطبيقك

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

من django.shortcuts يستورد تصيير ، get_object_or_404
من .عارضات ازياء يستورد وصفة

# عرض قائمة للوصفات
defوصفات_قائمة(طلب):
الوصفات = Recipe.objects.all ()
يعود تقديم (طلب ، "recipes / recipe_list.html", {"وصفات":وصفات})

# عرض تفصيلي لكل وصفة
defوصف_تفاصيل(request، recipe_slug):
وصفة = get_object_or_404 (وصفة ، سبيكة = recipe_slug)
يعود تقديم (طلب ، "recipes / recipe_detail.html", {'وصفة': وصفة})

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

تكوين أنماط URL لطرق العرض الخاصة بك

في دليل التطبيق الخاص بك (أو وصفة folder) ، قم بإنشاء ملف يسمى urls.py لإضافة مسارات URL لتطبيقك. هنا مثال:

من django.urls يستورد طريق
من .الآراء يستورد recipe_list، recipe_detail

أنماط عنوان url = [
طريق(''، recipe_list ، الاسم ="وصفة المنزل"),
طريق('وصفة//'، recipe_detail، name ="وصف_تفاصيل"),
]

في مقتطف الشفرة أعلاه ، يقدم المسار الثاني الرابط الثابت في عنوان URL للصفحة.

إنشاء قوالب لتطبيقك

لعرض الوصفات في المستعرض ، قم بإنشاء قوالب لطرق العرض الخاصة بك. يجب أن يكون أحد النماذج لـ وصفات_قائمة عرض بينما يجب أن يكون الآخر ل وصف_تفاصيل منظر. لاستخدام الرابط الثابت في القالب الخاص بك ، اتبع هذا التنسيق ، {٪ url 'view_name' recipe.slug٪}. فيما يلي مثالان يمكنك استخدامهما في التعليمات البرمجية الخاصة بك:

 الوصفات / recipe_list.html 
{٪ يمتد 'base.html'٪}

{٪ حظر المحتوى٪}
<h1فصل="مركز نصي 5">وصفاتh1>
<مركز>
<مايفصل="قائمة المجموعة W-75">
{٪ للوصفات في الوصفات٪}
<ليفصل="قائمة-مجموعة-عنصر بلدي 3">
<h2فصل="mb-3">
<أhref="{٪ url 'recipe_detail' recipe.slug٪}">
{{recipe.name}}
أ>
h2>
<صفصل="w-50">
المكونات: {{recipe.ingredients}}
ص>
<صفصل="كتم صوت النص">
تاريخ الإنشاء: {{recipe.date_created}}
ص>
لي>
{٪ فارغ ٪}
<ليفصل="قائمة-مجموعة-عنصر">لم يتم العثور على وصفات.لي>
{٪ endfor٪}
ماي>
مركز>
{٪ endblock٪}

سيقوم قالب HTML أعلاه بسرد جميع الوصفات في قاعدة البيانات الخاصة بك وعرضها لم يتم العثور على وصفات إذا لم تكن هناك وصفات. يستخدم فئات Bootstrap للتصميم. يمكنك أن تتعلم كيف استخدم Bootstrap مع Django. يجب أن يبدو النموذج أعلاه بهذا الشكل في المتصفح:

 الوصفات / recipe_detail.html 
{٪ يمتد 'base.html'٪}

{٪ حظر المحتوى٪}
<مركز>
<شعبةفصل="w-75">
<h1فصل="MT-5 ميغابايت-4">{{recipe.name}}h1>
<h3>مكوناتh3>
<ص>{{recipe.ingredients}}ص>
<h3>تعليماتh3>
<ص>{{recipe.instructions}}ص>
<صفصل="كتم صوت النص">تاريخ الإنشاء: {{recipe.date_created}}ص>
شعبة>
مركز>
{٪ endblock٪}

يعرض قالب HTML أعلاه تفاصيل حول وصفة معينة. في المتصفح ، يجب أن تبدو الصفحة أعلاه كما يلي:

ستلاحظ أن عنوان URL يحتوي الآن على أي سبيكة قمت بإضافتها في قاعدة البيانات الخاصة بك لكل وصفة. إذا كنت لا تفهم كيفية عمل نظام القوالب ، فيجب أن تتعلم أولاً قالب الميراث في Django و هندسة MVT لـ Django.

إنشاء سبيكة تلقائيًا في Django

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

# استيراد slugify
من django.template.defaultfilters يستورد بطيء

defيحفظ(self، * args، ** kwargs):
لولا القفل الذاتي:
self.slug = slugify (اسم النفس)
super (). save (* args ، ** kwargs)

تتحقق الوظيفة المذكورة أعلاه أولاً مما إذا كانت هناك سبيكة صلبة لكائن النموذج. إذا لم يكن هناك رابط ، فإنه يستخدم بطيء وظيفة لتوليد واحد من حقل الاسم في النموذج. بعد تجاوز ملف يحفظ() الطريقة ، افتح لوحة الإدارة وأضف بعض الوصفات. هذه المرة ، لست مضطرًا لملء حقل slug لأنه سيتم ملؤه تلقائيًا بمجرد حفظ وصفتك.

إذا انتقلت إلى صفحة التفاصيل الخاصة بالوصفة المضافة حديثًا ، فسترى أن عنوان URL يستخدم اسم الوصفة على أنه سبيكة ثابتة.

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

self.slug = slugify (self.name + "-" + str (self.date_created))

استخدم Slugs لتحسين تجربة URL

على عكس القديم الجيد ص، توفر slugs العديد من الفوائد بما في ذلك المرونة وقابلية النقل نظرًا لأنها غير مرتبطة بمعرفات URL محددة مثل المفتاح الأساسي. لذلك ، إذا قمت بتغيير بنية قاعدة البيانات أو ترحيل بياناتك ، فلا يزال بإمكانك الاحتفاظ بعناوين URL متسقة. تعمل الرخويات أيضًا على تعزيز الود مع مُحسّنات محرّكات البحث.