Flask Server
Flask HTML server using templates (Jinja2)
Project structure
project/
├── app.py
├── templates/
│ ├── base.html
│ └── index.html
└── static/
└── style.cssBasic Flask HTML server (app.py)
app.py)from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html", title="Home")
@app.route("/users/<int:user_id>")
def user(user_id):
return render_template(
"index.html",
title="User Page",
user_id=user_id,
name="Alice"
)
if __name__ == "__main__":
app.run(debug=True)Base template (templates/base.html)
templates/base.html)Page template (templates/index.html)
templates/index.html)5. Static CSS (static/style.css)
static/style.css)Main Flask template keyworks
| | render_template() | renders HTML | | {{ variable }} | insert Python values | | {% if %}, {% for %} | logic | | {% extends %} | template inheritance | | url_for('static', filename=...) | static files |
Common template patterns
Loop
Conditional
7. Example URLs
API server
Dependencies
Flask API Server
Write
app.pyRun the server
Web client
Web Socket server
Dependencies
Flask WebSocket server
Simple JavaScript client
Flask response types
String
Tuple (body, status, headers)
Response
Responsejsonify()
jsonify()make_response()
make_response()render_template()
render_template()render_template_string()
render_template_string()abort() (error + redirect-like flow stop)
abort() (error + redirect-like flow stop)send_file()
send_file()send_from_directory()
send_from_directory()Streaming response
Redirect (URL or endpoint)
Redirect to a URL
Redirect to a Flask endpoint
Redirect with status code
Common codes:
Code
Description
302
default
301
permanent
303
after POST (recommended)
307
preserve method
Last updated