Hỏi về templates inheritance trong Flask Framework?

Ở đây không biết có ai rành về flask không nhỉ :smiley: Mình muốn hỏi là cách thức thừa kế templates trong flask nó hoạt động như thế nào ?? Mình thấy hơi bị bối rối chỗ kế thừa này :smile:

Mình có hai file : homepage.html và about.html

homepage.html

<!DOCTYPE html>
<html charset:utf-8>
<head>
    {% block head %}
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap -->
    <link href="{{ url_for('static',filename='css/bootstrap.min.css')}}" rel="stylesheet">
    <title>Personal Page</title>
    {% endblock %}
</head>
<header>
        <a href="/">
            <button type="button" class="btn btn-primary" aria-label="Left Align">
                <span class="glyphicon glyphicon-home" aria-hidden="true" > Home </span> 
            </button>
        </a>

        <a href="/about/">
            <button type="button" class="btn btn-primary" aria-label="Left Align">
                 <span class="glyphicon glyphicon-eye-open" aria-hidden="true"> About </span>
            </button>
        </a>
        
        <a href="/download">    
            <button type="button" class="btn btn-primary" aria-label="Left Align">
                 <span class="glyphicon glyphicon-floppy-save"> Download </span>
            </button>
        </a>    
</header>
<body>
    
    <div class="jumbotron text-center">
        <h1> WHY SHOULD YOU LEARN PYTHON? </h1>
    </div>
    <video style="width: 100%; height: 30%" controls="controls">
            <source src="/static/videos/Python.mp4" type="video/mp4">        
    </video>
    {% block body %}
    <script type="text/javascript" src="{{ url_for('static',filename='js/bootstrap.min.js') }}"></script>
    <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
    {% endblock %}
</body>
</html>  

và about.html

{% extends "homepage.html" %}
{% block head %} {{ super() }} {% endblock %}
{% block body %}
<div class="jumbotron text-center">
        <h1> <b> HELLO </b> </h1>
    </div>
    <div class = "jumbotron text-center">
        <h3>
            I'm just a newbee in Python Language. After learning Python via Youtube,Documents,etc. I decide to make this website.
            There's nothing special about this page. Purpose is to learn how to use Flask Framework and Python to make a website.
        </h3>
    </div>
    <audio controls autoplay="autoplay" hidden="hidden">
        <source src="/static/music/So Blue.mp3" type="audio/mpeg">
    </audio>
{%endblock%}

Mình kế thừa phần body của homepage.html. Mình thử đặt block như sau

<body>
    
    <div class="jumbotron text-center">
        <h1> WHY SHOULD YOU LEARN PYTHON? </h1>
    </div>
    <video style="width: 100%; height: 30%" controls="controls">
            <source src="/static/videos/Python.mp4" type="video/mp4">        
    </video>
    {% block body %}
    <script type="text/javascript" src="{{ url_for('static',filename='js/bootstrap.min.js') }}"></script>
    <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
    {% endblock %}
</body>

thì about.html sẽ kế thừa toàn bộ phần body của homepage.html (1 cái video) nhưng khi đặt block như sau

<body>
    {% block body %}
    <div class="jumbotron text-center">
        <h1> WHY SHOULD YOU LEARN PYTHON? </h1>
    </div>
    <video style="width: 100%; height: 30%" controls="controls">
            <source src="/static/videos/Python.mp4" type="video/mp4">        
    </video>
    
    <script type="text/javascript" src="{{ url_for('static',filename='js/bootstrap.min.js') }}"></script>
    <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
    {% endblock %}
</body>

thì lại không kế thừa được cái video. Cho mình hỏi là tại sao??

có ai giải thích giúp mình được không :cry:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?