[PYTHON] Ich habe Klinge und Jinja2 verglichen

Wie kann man eine Vorlage schreiben, wenn man zwischen Laravel und Flask hin und her geht? Als Memorandum.

Jemand, der das lesen sollte

Ich habe Laravel gemacht, aber ich möchte Flask ausprobieren Ich habe Flask gemacht, aber ich möchte Laravel ausprobieren Entweder ist für diejenigen, die es berührt haben.

Einfacher Typ

Vergleich blade jinja2
Ausgabe {{Variable}} {{Variable}}
Ausgabe nicht zu entkommen {!!Variable!!} {%Variable%}
Kommentar {{--Kommentar--}} {#Kommentar#}
if @if (Bedingter Ausdruck) {% if Bedingter Ausdruck %}
elseif @elseif {%elif bedingter Ausdruck 2%}
else @else {% else %}
endif @endif {% endif %}
for @for (Bedingter Ausdruck) {% for Bedingter Ausdruck %}
endfor @endfor {% endfor %}
Index der aktuellen Schleife(Anfangswert 0) $loop->index loop.index0
Index der aktuellen Schleife(Anfangswert 1) $loop->iteration loop.index
Gesamtzahl der Artikel $loop->count loop.length
Ist es die erste Schleife? $loop->first loop.first
Ist es die letzte Schleife? $loop->last loop.last

$ Loop-> Index des Blades beginnt bei 0, aber loop.index von jinja2 beginnt bei 1. Ich wusste es nicht.

Andere Vergleiche

So setzen Sie Variablen

blade


@php 
$test = 'test';
@endphp

jinja2


{% set test = 'test' %}

Dreiecksoperator

blade


@php 
$test = 'test';
@endphp

jinja2


{% set test = 'test' %}

Vorlage

blade

html: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>

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">
Dies ist die Indexseite.
    </p>
@endsection

Wenn angezeigt ... スクリーンショット 2020-06-11 11.59.04.png Der Titel und der Text werden auch gut angezeigt!

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">
Dies ist die Indexseite.
    </p>
{% endblock %}

Wenn angezeigt ... スクリーンショット 2020-06-11 10.55.41.png

Es wurde das gleiche Display wie die Klinge.

Die übergeordnete Vorlage kann mit Blade klarer geschrieben werden.

das ist alles!

Recommended Posts

Ich habe Klinge und Jinja2 verglichen
Ich habe Java und Python verglichen!
Ich habe Qiskit und Blueqat (Anfänger) verglichen.
Ich habe Java und Ruby persönlich verglichen
Ich habe Python3 Standard Argparse und Python-Fire verglichen
Ich habe Pythons Iterator und Rubys Enumerator verglichen
Ich habe versucht, Stoff, Küche und Jinja2 zu kombinieren
Ich habe versucht, jinja2 zu verwenden
Ich habe Python more-itertools 2.5 → 2.6 verglichen
Asynchrone E / A und nicht blockierende E / A.
Ich berührte Tensorflow und Keras
Ich habe den Verwaltungsbildschirm von Django verglichen
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
Ich habe Jinja2 beim Lesen des Dokuments verglichen, um es mit Django zu verwenden
Ich habe mit PyQt5 und Python3 gespielt
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
Ich habe Dash und Streamlit in der Docker-Umgebung anhand von B-League-Daten verglichen