Flask Course এর ৪র্থ পর্বে আপনাকে স্বাগতম।গত পর্বে আমরা Template কীভাবে ব্যবহার করতে হয় তা শিখেছিলাম।আজকে আমরা শিখবো Template Inheritance 

 

Template Inheritance কী?

আপনি যদি একটি Base Template বানান এবং Child Template এ সেগুলো Inherit করেন তাহলে সেটিকে বলা হবে Template Inheritance. সহজভাবে বললে একটি Template এ আপনি একটি skeleton বানিয়েছেন সেখানে কিছু Content আছে এবং আরো Content এর কিছু যায়গা আছে যেগুলো ফাকা।যখন আপনি আরেকটি Template বানিয়ে পূর্বের Template টি Inherit করবেন তখন আপনাকে নতুন করে ওই Template এর Content লিখতে হবে না শুধু ফাঁকা যায়গায় আপনি Content গুলো লিখবেন।এতে করে একটি Skeleton বানিয়ে আপনি অনেকগুলো Template এ Use করতে পারবেন।

Template Inheritance কেন প্রয়োজন?

আমরা যখন কোনো Website তৈরি করি তখন সব পেজেই কিছু জিনিস Common থাকে।যেমন Navbar,Header,Footer,Sidebar etc. এবং ভিন্ন থাকে শুধু এর মধ্যকার কিছু Content, এখন আপনি যদি আপনার সাইটে ১০০টা পেজ তৈরি করেন তাহলে একই জিনিস বার বার কপি পেস্ট করতে হবে যেটা Template Inheritance use করলে করতে হবে না।এতে সময়ও বেচে যাবে আবার ফাইল সাইজও কমে আসবে।এই Concept টি OOPs এর Class Inheritance এর মত।

কীভাবে Template Inherit করবেন?

প্রথমেই আপনাকে একটি Template বানিয়ে নিতে হবে।এরপর যেখানে যেখানে আপনি child template থেকে content বসাতে চান সেখানে একটি করে block তৈরি করে নিতে হবে।block বানানোর syntax:

{% block block_name %}

content

{% endblock %}

প্রথমেই Base template এ block বানানো যাক

<head>
    <title>{% block title %} {% endblock %}</title>
</head>
<body>
{% block body %}
{% endblock %}
</body>

এখানে আমি শুধু block গুলোই বানিয়েছি যখন child template বানাবো তখন এই যায়গাগুলোতে child template এর content বসে যাবে।তবে এখানেও চাইলে কিছু content দেয়া যেতে পারে যেটা child template এর content এর সাথে থাকবে তবে এই প্রক্রিয়াটি আমরা পরবর্তীতে শিখবো।

এখন child template বানিয়ে নিবো

{% extends "base.html" %}
{% block title %}
Home
{% endblock %}
{% block body %}
<h1>This is Homepage</h1>
{% endblock %}

এখানে আগে base template extend করতে হবে।এর syntax: {% extends “base_template_name” %} এখানে আমি একই ভাবে block বানিয়েছি তবে এখানে আমি যে content লিখেছি তা base template এ যেখানে এই block গুলো ছিল সেখানে show করবে।এভাবেই template inherit করতে পারবেন।

 

আজ এই পর্যন্তই।সবাই ভালো থাকবেন

 

বিভিন্ন Tips And Tricks পেতে Join করতে পারেন: t.me/techztricks

Leave a Reply