2015-12-20 4 views
6

मैं फ्लास्क ट्यूटोरियल के माध्यम से चल रहा हूं और मुझे टेम्पलेट विरासत को काम करने के लिए प्रतीत नहीं होता है। नीचे मेरी कोड के उदाहरण हैंफ्लास्क टेम्पलेट विरासत ट्यूटोरियल

मेरे base.html है:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    {% block head %} 
    <link rel="stylesheet" href="style.css" /> 
    <title>{% block title %}{% endblock %} - My Webpage</title> 
    {% endblock %} 
</head> 
<body> 
    <div id="content">{% block content %}{% endblock %}</div> 
    <div id="footer"> 
     {% block footer %} 
     &copy; Copyright 2008 by <a href="http://domain.invalid/">you</a>. 
     {% endblock %} 
    </div> 
</body> 
</html> 

मेरे बच्चे अस्थायी है:

{% extends "base.html" %} 
{% block title %}Index{% endblock %} 
{% block head %} 
    {{ super() }} 
    <style type="text/css"> 
     .important { color: #336699; } 
    </style> 
{% endblock %} 
{% block content %} 
    <h1>Index</h1> 
    <p class="important"> 
     Welcome to my awesome homepage. 
    </p> 
{% endblock %} 

मेरी कुप्पी स्क्रिप्ट है:

from flask import Flask, render_template 
app = Flask(__name__) 


@app.route('/') 
def home(): 
    return render_template("base.html") 

if __name__ == "__main__": 
    app.debug = True 
    app.run() 

वहाँ है कुछ विशेष रूप से मुझे यह करना चाहिए कि मैं बाल टेम्पलेट को कैसे शामिल कर रहा हूं? या मुझे आधार टेम्पलेट को अलग-अलग प्रस्तुत करना चाहिए?

उत्तर

7

जिन्जा extends पाइथन सबक्लासिंग की तरह काम करता है (सतही)। जब आप अभिभावक वर्ग को तुरंत चालू करते हैं तो आपको उप-वर्ग का उदाहरण नहीं मिलता है, और बेस टेम्पलेट को प्रस्तुत करते समय आपको किसी बच्चे टेम्पलेट का नतीजा नहीं मिलता है। इसके बजाए बच्चे के टेम्पलेट को प्रस्तुत करें।

return render_template('child.html') 
संबंधित मुद्दे