0Pricing
Flask Academy · درس

تمديد القالب الأساسي في الصفحات الفرعية

استخدم extends واملأ الكتل لكل صفحة.

تمديد القالب الأساسي في الصفحات الفرعية درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Connect a Page to the Base

A child page does not repeat the skeleton. It declares that it extends the base, then fills only the blocks it needs to change. 🔗

The extends Tag

The first line of a child template uses extends to name its parent layout. This tells Jinja2 to inherit the base before rendering.

{% extends "base.html" %}

extends Must Come First

The extends tag has to be the very first thing in the child file. Putting markup above it breaks inheritance and raises a template error.

Override a Block

To replace a slot, redeclare the block with the same name in the child. Whatever you put inside now shows instead of the base default.

{% block title %}Dashboard{% endblock %}

A Complete Child Page

This child template extends base.html and overrides two blocks. The rest of the page comes straight from the parent layout.

{% extends "base.html" %}
{% block title %}Home{% endblock %}
{% block content %}
  <h1>Welcome</h1>
{% endblock %}

Skip Blocks You Like

You only override the blocks you want to change. Any block you leave out keeps the default content defined in the base template.

Reuse Parent Content

Inside an overridden block you can call super() to pull in the parent block content, then add your own around it.

{% block content %}{{ super() }}<p>Extra</p>{% endblock %}

Render the Child, Not the Base

Your view returns the child template path. Flask renders the child, which inherits the base, so you never call base.html directly.

return render_template("home.html")

Block Names Must Match

Override only works when the child block name exactly matches one in the base. A typo silently leaves the parent default in place.

One Base, Many Children

Dozens of pages can extend the same base.html. Each child stays tiny because it only carries the markup unique to that page.

Inheritance Saves You

Change the base header once and every child page updates instantly. That cascade is the real power of template inheritance. 🚀

Quick Check

Where must the extends tag appear in a child template?

Recap: Extending Pages

Child pages extend a base, override matching blocks, and may reuse parent content with super(). One base now powers many pages. 🎯

الأسئلة الشائعة

هل درس «تمديد القالب الأساسي في الصفحات الفرعية» مجاني؟

نعم — نص درس «تمديد القالب الأساسي في الصفحات الفرعية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.

ماذا ستتعلم في «تمديد القالب الأساسي في الصفحات الفرعية»؟

استخدم extends واملأ الكتل لكل صفحة. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟

لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «تمديد القالب الأساسي في الصفحات الفرعية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟

نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعريف قالب أساسي باستخدام الكتل
  2. تمديد القالب الأساسي في الصفحات الفرعية
  3. تضمين الأجزاء القابلة لإعادة الاستخدام
  4. وحدات الماكرو للترميز المتكرر
← العودة إلى Flask Academy