blade와 jinja2 비교해 보았다
이것을 읽으면 좋은 사람
Laravel을 했지만 Flask를 해보고 싶습니다.
Flask하고 있었지만 Laravel을하고 싶습니다.
어느 쪽이든 만진 적이있는 사람을위한 것입니다.
기본 녀석
비교 대상
블레이드
jinja2
출력
{{ 변수 }}
{{ 변수 }}
이스케이프하지 않는 출력
{!! 변수 !!}
{% 변수 %}
코멘트
{{-- 코멘트 --}}
{# 코멘트 #}
if
@if (조건식)
{% if 조건식 %}
elseif
@elseif
{% elif 조건식 2 %}
else
@else
{%else%}
endif
@endif
{%endif%}
for
@for (조건식)
{% for 조건식 %}
endfor
@endfor
{%endfor%}
현재 루프의 인덱스 (초기 값 0)
$loop->index
loop.index0
현재 루프의 인덱스 (초기 값 1)
$loop->iteration
loop.index
총 아이템 수
$loop->count
loop.length
첫 번째 루프?
$loop->first
loop.first
마지막 루프?
$loop->last
loop.last
blade의 $loop->index는 0 시작이지만 jinja2의 loop.index는 1 시작입니다. 몰랐다.
기타 비교
변수 설정 방법
블레이드
@php
$test = 'test';
@endphp
jinja2
{% set test = 'test' %}
삼항 연산자
블레이드
@php
$test = 'test';
@endphp
jinja2
{% set test = 'test' %}
템플릿
블레이드
views/layouts/parent.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
@yield('head')
<title>@yield('title') - My Webpage</title>
</head>
<body>
<main>
@yield('content')
</main>
</body>
</html>
views/child.blade.php
@extends('layouts.parent')
@section('head')
<style type="text/css">
.text{ color: #336699; }
</style>
@endsection
@section('title')
Index
@endsection
@section('content')
<h1>Index</h1>
<p class="text">
これはIndexページです。
</p>
@endsection
표시하면 ...
제목과 본문이 잘 표시됩니다!
jinja2
parent.html
<!DOCTYPE html>
<html lang="en">
<head>
{% block head %}
<title>{% block title %}{% endblock %} - My Webpage</title>
{% endblock %}
</head>
<body>
<main>{% block content %}{% endblock %}</main>
</body>
</html>
child.html
{% extends "base.html" %}
{% block head %}
{{ super() }}
<style type="text/css">
.text { color: #336699; }
</style>
{% endblock %}
{% block title %}
Index
{% endblock %}
{% block content %}
<h1>Index</h1>
<p class="text">
これはIndexページです。
</p>
{% endblock %}
표시하면 ...
blade와 같은 표시가 되었습니다.
부모의 템플릿은 blade 쪽이 깔끔하게 쓸 수 있네요.
이상입니다!
Reference
이 문제에 관하여(blade와 jinja2 비교해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sugawa-e/items/d25499457db22fa6b46b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)