Jinja Templates
Source: 13-Flask/flask/jinja.py
Start here — no coding background needed
What you will learn
HTML templates with placeholders for dynamic data.
In simple words
Like a letter template: Dear {{name}}, your order is ready.
Build websites with Python — read for overview; run full apps on your computer later.
Easy example — run this first. Change values and press Run again.
Runs in your browser via Pyodide — no server. First run may take a few seconds.
Reference notes (from full bootcamp)
Optional — deeper detail for when you are ready
Reference script from the bootcamp repo. Read the code below; run a simplified version in the playground when marked runnable.
### Building Url Dynamically
## Variable Rule
### Jinja 2 Template Engine
### Jinja2 Template Engine
'''
{{ }} expressions to print output in html
{%...%} conditions, for loops
{#...#} this is for comments
'''
from flask import Flask,render_template,request,redirect,url_for
'''
It creates an instance of the Flask class,
which will be your WSGI (Web Server Gateway Interface) application.
'''
###WSGI Application
app=Flask(__name__)
@app.route("/")
def welcome():
return "<html><H1>Welcome to the flask course</H1></html>"
@app.route("/index",methods=['GET'])
def index():
return render_template('index.html')
@app.route('/about')
def about():
return render_template('about.html')
## Variable Rule
@app.route('/success/<int:score>')
def success(score):
res=""
if score>=50:
res="PASSED"
else:
res="FAILED"
return render_template('result.html',results=res)
## Variable Rule
@app.route('/successres/<int:score>')
def successres(score):
res=""
if score>=50:
res="PASSED"
else:
res="FAILED"
exp={'score':score,"res":res}
return render_template('result1.html',results=exp)
## if confition
@app.route('/sucessif/<int:score>')
def successif(score):
return render_template('result.html',results=score)
@app.route('/fail/<int:score>')
def fail(score):
return render_template('result.html',results=score)
@app.route('/submit',methods=['POST','GET'])
def submit():
total_score=0
if request.method=='POST':
science=float(request.form['science'])
maths=float(request.form['maths'])
c=float(request.form['c'])
data_science=float(request.form['datascience'])
total_score=(science+maths+c+data_science)/4
else:
return render_template('getresult.html')
return redirect(url_for('successres',score=total_score))
if __name__=="__main__":
app.run(debug=True)
Browser practice only — full example needs Python on your computer (files, Flask, threads, etc.).
Practice test — try yourself
Write code, press Check. Wrong answer shows the correct code to copy & run.
You learned "Jinja Templates". Use print() to show: Done: Jinja Templates
Hint: Use one print() with the exact text.