อัปเดตล่าสุด April 15, 2023
Template Inheritance คือ การสืบทอดหน้า HTML โดยทำการสร้าง base.html ไฟล์เพื่อทำหน้าที่เป็น parent file เพื่อให้หน้าเว็บเพจอื่น ๆ ได้สอบทอดไปจากหน้านี้ โดยประโยชน์ของการทำ template inheritance คือ
ไวยากรณ์ในการสืบทอด template จะเป็นแบบนี้
{% extends 'blog/base.html' %}
จะเห็นว่ามีการใช้คำสั่ง extends เพื่อบอกว่าเป็นการสืบทอด template โดยทำการสืบทอดมาจาก parent file คือไฟล์ base.html
base.html
<!DOCTYPE html>
{% load static %}
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
...
...
...
</nav>
{% block content %}{% endblock %}
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
</body>
</html>
home.html
{% extends 'blog/base.html' %}
{% block title %}Home{% endblock %}
{% block content %}
<div class="container">
<h1>Hello, Django</h1>
<p>I love to learn Django framework</p>
</div>
{% endblock %}
about.html
{% extends 'blog/base.html' %}
{% block title %}About Us{% endblock %}
{% block content %}
<div class="container">
<h1>I'm Sonny</h1>
<p>I'm a normal guy, who loves to share Django tutorial</p>
</div>
{% endblock %}
จะเห็นว่าตอนนี้เราได้ทำ template inheritance จากไฟล์ base.html ที่เป็น parent file ไปที่ child files คือ home.html และ about.html
คอร์สอบรม เรียนทำเว็บ ด้วย Django สุดยอด web framework อันดับ 1 ที่ได้รับ…
พัฒนา REST APIs ด้วยสุดยอด toolkit ของ Django ในการทำ API โดยเฉพาะอย่าง …