Python → Python za web → HTML template u Flask-u
HTML template u Flask-u (Jinja2)
U prethodnoj lekciji naučili smo kako Flask koristi rute (URL putanje) za povezivanje web adresa sa Python funkcijama.
Sada ćemo naučiti kako Flask prikazuje prave HTML web stranice.
Problem sa vraćanjem HTML koda
Moguće je vratiti HTML direktno iz Python funkcije:
@app.route("/")
def home():
return "<h1>Dobrodošli</h1>"
Ali kod većih aplikacija ovo brzo postaje teško za održavanje.
Šta je HTML template?
Template je HTML fajl koji Flask koristi za prikaz web stranice.
Flask koristi template sistem koji se zove Jinja2.
- HTML se piše u posebnom fajlu
- Python šalje podatke template-u
- template generiše finalnu web stranicu
Struktura Flask projekta
Tipična Flask aplikacija izgleda ovako:
projekat/
app.py
templates/
index.html
Primer Flask aplikacije sa template-om
Prvo napravimo HTML fajl.
templates/index.html
<html>
<head>
<title>Moj Flask sajt</title>
</head>
<body>
<h1>Dobrodošli na moj Python sajt</h1>
</body>
</html>
Zatim u Python kodu učitavamo template.
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html")
app.run()
Kako radi render_template?
- Flask pronalazi HTML fajl u folderu templates
- učitava HTML sadržaj
- šalje ga browseru kao web stranicu
Mini projekat – Jednostavan web sajt
Napravimo malu aplikaciju sa dve stranice.
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html")
@app.route("/kontakt")
def kontakt():
return render_template("kontakt.html")
app.run()
Kako radi ovaj projekat?
- svaka ruta učitava svoj HTML template
- browser prikazuje različitu stranicu
- aplikacija funkcioniše kao mali web sajt
Povezane lekcije
Često postavljana pitanja
Šta je template u Flask-u?
Template je HTML fajl koji Flask koristi za prikaz web stranice.
Šta je Jinja2?
Jinja2 je template engine koji Flask koristi za generisanje HTML stranica.
Gde se nalaze template fajlovi?
Nalaze se u folderu templates.
Zašto koristiti template sistem?
Omogućava lakše održavanje i organizaciju web aplikacije.