Sunucum için Jinja şablonlarını kullanan Flask mikro çerçevesini kullanıyorum.
Bir ebeveynim template.html
ve adında bazı çocuk şablonları var child1.html
ve child2.html
bu çocuk şablonlarından bazıları oldukça büyük HTML dosyaları ve işimde daha iyi anlaşılırlık için onları bir şekilde bölmek istiyorum.
Senaryomun içeriği main.py
:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
@app.route('/<task>')
def home(task=''):
return render_template('child1.html', task=task)
app.run()
Basitleştirilmiş template.html
:
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="container">
{% block content %}{% endblock %}
</div>
</body>
</html>
Sihir child1.html
:
{% extends 'template.html' %}
{% block content %}
{% if task == 'content1' %}
<!-- include content1.html -->
{% endif %}
{% if task == 'content2' %}
<!-- include content2.html -->
{% endif %}
{% endblock %}
Yorumlar yerine:
<!-- include content1.html -->
Çok fazla html metnim var ve değişiklikleri takip etmek ve bazı hatalar yapmamak çok zor, bu yüzden bulması ve düzeltmesi oldukça zor.
content1.html
Hepsini yazmak yerine sadece yüklemek istiyorum child1.html
.
Ben rastladım bu soruya , ancak bunu gerçekleştirme konusunda sorunlar vardı.
Jinja2'nin bunun için daha iyi bir aracı olabileceğini düşünüyorum.
NOT: Yukarıdaki kod düzgün çalışmıyor olabilir, sadece sorunu açıklamak için yazdım.