Django의 템플릿 엔진과 Flask의 Jinja2에 대한 심층적인 이해, 구체적인 코드 예제가 필요합니다.
소개:
Django와 Flask는 Python에서 일반적으로 사용되고 널리 사용되는 두 가지 웹 프레임워크입니다. 둘 다 동적 웹 페이지의 렌더링을 처리하는 강력한 템플릿 엔진을 제공합니다. Django는 자체 템플릿 엔진을 사용하고 Flask는 Jinja2를 사용합니다. 이 기사에서는 Django의 템플릿 엔진과 Flask의 Jinja2를 심층적으로 살펴보고 사용법과 차이점을 설명하는 몇 가지 구체적인 코드 예제를 제공합니다.
1. Django 템플릿 엔진
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
보기 함수에서 데이터를 템플릿에 전달하고 render
를 사용하여 렌더링할 수 있습니다. 기능 . 예를 들어 "name"이라는 변수를 템플릿에 전달할 수 있습니다. render
函数将数据传递给模板并进行渲染。例如,我们可以传递一个名为“name”的变量给模板:
from django.shortcuts import render def hello(request): name = "John" return render(request, 'hello.html', {'name': name})
{{ name }}
。{% for item in items %} {% endfor %}
。{{ name|title }}
表示将name变量转换为首字母大写的形式。<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
然后,在其他模板中可以使用extends
关键字来继承并扩展基础模板,如下所示:
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
二、Flask的Jinja2
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
在视图函数中,可以使用render_template
函数来渲染模板并传递数据。例如,我们可以传递一个名为“name”的变量给模板:
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def hello(): name = "John" return render_template('hello.html', name=name)
{{ name }}
。{% for item in items %} {% endfor %}
。{{ name|title }}
表示将name变量转换为首字母大写的形式。<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
然后,在其他模板中使用extends
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
Django의 템플릿 엔진은 논리 및 데이터 표현을 처리하기 위한 풍부한 구문을 제공합니다. 다음은 일반적으로 사용되는 템플릿 구문 예입니다.
변수: {{ name }}
와 같이 변수 이름을 묶으려면 이중 중괄호를 사용하세요.
{% for item in items %} {% endfor %}
와 같은 태그를 포함하려면 중괄호와 백분율 기호를 사용하세요. 🎜🎜필터: 변수 뒤에 파이프 기호와 필터를 사용하여 변수 출력을 처리할 수 있습니다. 예를 들어 {{ name|title }}
는 이름 변수를 대문자 형식으로 변환하는 것을 의미합니다. 🎜extends
키워드를 다른 템플릿에서 사용하여 기본 템플릿을 상속하고 확장할 수 있습니다. 🎜rrreee🎜2. Flask의 Jinja2 생성 및 사용🎜🎜🎜template🎜 Django와 마찬가지로 Flask는 Jinja2를 템플릿 엔진으로 사용합니다. 마찬가지로 HTML 파일을 생성하여 템플릿을 생성할 수도 있습니다. 🎜Flask에서 템플릿 파일은 일반적으로 애플리케이션의 "templates" 디렉터리에 저장됩니다. 🎜예를 들어 아래와 같이 "hello.html"이라는 템플릿을 만들 수 있습니다. 🎜🎜rrreee🎜보기 함수에서 render_template
함수를 사용하여 템플릿을 렌더링하고 데이터를 전달할 수 있습니다. 예를 들어 "name"이라는 변수를 템플릿에 전달할 수 있습니다. 🎜rrreee{{ name }}
와 같은 변수 이름을 포함하려면 이중 중괄호를 사용하세요. 🎜🎜제어 구조: {% for item in items %} {% endfor %}
와 같은 제어 구조를 포함하려면 중괄호와 백분율 기호를 사용하세요. 🎜🎜필터: 변수 뒤에 파이프 기호와 필터를 사용하여 변수 출력을 처리할 수도 있습니다. 예를 들어 {{ name|title }}
는 이름 변수를 첫 글자를 대문자로 변환하는 것을 의미합니다. 🎜extends
키워드를 사용하여 기본 템플릿을 상속하고 확장합니다. 아래: 🎜rrreee🎜 결론: 🎜 Django의 템플릿 엔진과 Flask의 Jinja2는 모두 동적 웹 페이지 렌더링을 생성하는 강력한 기능을 제공합니다. 둘 사이에는 구문과 사용법에 약간의 차이가 있지만 전반적으로 매우 유사합니다. 실제 개발에서는 개인 취향이나 프로젝트 요구 사항에 따라 둘 중 하나를 선택하여 사용할 수 있습니다. 🎜🎜위 내용은 Django의 템플릿 엔진과 Flask의 Jinja2에 대한 심층적인 이해입니다. 구체적인 코드 예제를 통해 사용법과 차이점을 더욱 명확하게 이해할 수 있습니다. 이 글이 여러분이 이 두 가지 템플릿 엔진을 이해하고 사용하는 데 도움이 되기를 바랍니다. 🎜위 내용은 Django의 템플릿 엔진과 Flask의 Jinja2에 대해 자세히 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!