Learn FLASK with Real Code Examples
Updated Nov 25, 2025
Code Sample Descriptions
1
Flask Simple Counter API
from flask import Flask, render_template_string, request
app = Flask(__name__)
count = 0
TEMPLATE = '''
<!DOCTYPE html>
<html>
<head><title>Flask Counter</title></head>
<body>
<h2>Counter: {{ count }}</h2>
<form method='post'>
<button name='action' value='increment'>+</button>
<button name='action' value='decrement'>-</button>
<button name='action' value='reset'>Reset</button>
</form>
</body>
</html>
'''
@app.route('/', methods=['GET', 'POST'])
def counter():
global count
if request.method == 'POST':
action = request.form.get('action')
if action == 'increment': count += 1
elif action == 'decrement': count -= 1
elif action == 'reset': count = 0
return render_template_string(TEMPLATE, count=count)
if __name__ == '__main__':
app.run(debug=True, port=5000)
Demonstrates a simple Flask app with a counter API and HTML interface using routes and global state.
2
Flask Hello World API
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def hello():
return jsonify({ 'message': 'Hello World' })
if __name__ == '__main__':
app.run(debug=True, port=5000)
A minimal Flask API returning Hello World in JSON.
3
Flask JSON Echo
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/echo', methods=['POST'])
def echo():
data = request.json
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True, port=5000)
A POST endpoint that echoes back JSON data.
4
Flask Query Parameter Example
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/greet')
def greet():
name = request.args.get('name', 'Guest')
return jsonify({ 'message': f'Hello {name}' })
if __name__ == '__main__':
app.run(debug=True, port=5000)
Using query parameters to greet users.
5
Flask Route Parameter Example
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/users/<int:user_id>')
def get_user(user_id):
return jsonify({ 'id': user_id, 'name': f'User {user_id}' })
if __name__ == '__main__':
app.run(debug=True, port=5000)
Returns user info based on route parameter.
6
Flask Middleware Example
from flask import Flask, request
app = Flask(__name__)
@app.before_request
def log_request():
print(f'{request.method} {request.path}')
@app.route('/')
def index():
return 'Check console for logs'
if __name__ == '__main__':
app.run(debug=True, port=5000)
Logging middleware example using before_request.
7
Flask Async Example
from flask import Flask, jsonify
import asyncio
app = Flask(__name__)
@app.route('/async')
async def async_route():
await asyncio.sleep(1)
return jsonify({ 'message': 'Async response' })
if __name__ == '__main__':
app.run(debug=True, port=5000)
A route demonstrating async behavior with delay.
8
Flask Error Handling Example
from flask import Flask, jsonify
app = Flask(__name__)
@app.errorhandler(404)
def not_found(e):
return jsonify({ 'error': 'Not Found' }), 404
@app.route('/')
def index():
return 'Welcome!'
if __name__ == '__main__':
app.run(debug=True, port=5000)
Custom error handler example.
9
Flask Combined Middleware and Routes
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.before_request
def log_request():
print(f'{request.method} {request.path}')
@app.route('/')
def index():
return jsonify({ 'message': 'Welcome' })
@app.route('/echo', methods=['POST'])
def echo():
return jsonify(request.json)
if __name__ == '__main__':
app.run(debug=True, port=5000)
Combines logging, JSON POST, and routes in Flask.
10
Flask Template Example
from flask import Flask, render_template_string
app = Flask(__name__)
TEMPLATE = '''
<h1>Hello {{ name }}</h1>
'''
@app.route('/<name>')
def hello(name):
return render_template_string(TEMPLATE, name=name)
if __name__ == '__main__':
app.run(debug=True, port=5000)
Renders an HTML template with Jinja2.