0
0
Raspberry Piprogramming~10 mins

Flask web server on Raspberry Pi - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Flask web server on Raspberry Pi
Start Raspberry Pi
Run Flask app script
Flask server starts
Wait for HTTP request
Receive request
Process request in Flask route
Send response back
Wait for next request or stop
The Raspberry Pi runs the Flask app script which starts a web server. It waits for web requests, processes them, and sends back responses.
Execution Sample
Raspberry Pi
from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello from Pi!'

app.run(host='0.0.0.0', port=5000)
This code starts a Flask web server on the Raspberry Pi that responds with 'Hello from Pi!' when the home page is accessed.
Execution Table
StepActionEvaluationResult
1Import Flask and create appapp = Flask(__name__)Flask app object created
2Define route '/'@app.route('/')Route '/' linked to home() function
3Define home() functiondef home(): return 'Hello from Pi!'Function ready to respond
4Run app with host='0.0.0.0', port=5000app.run(...)Server starts, listens on all interfaces
5Receive HTTP GET request at '/'Request receivedhome() function called
6Execute home()return 'Hello from Pi!'Response 'Hello from Pi!' sent
7Wait for next requestIdleServer running
8Stop server (Ctrl+C)Interrupt signalServer stops
💡 Server stops when interrupted or Raspberry Pi shuts down
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 6Final
appNoneFlask app objectFlask app object with route '/'SameServer runningSameServer stopped
Key Moments - 3 Insights
Why do we use host='0.0.0.0' in app.run()?
Using host='0.0.0.0' makes the Flask server listen on all network interfaces, allowing other devices on the network to access the Raspberry Pi server. See execution_table step 4.
What happens if we don't define a route with @app.route?
Without defining a route, Flask won't know which function to call for a URL, so requests to that URL will return 404 errors. See execution_table step 2.
How does Flask handle multiple requests?
Flask runs a simple server that processes one request at a time by default, waiting for each request to finish before handling the next. See execution_table steps 5-7.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the server doing at step 7?
AProcessing a request
BWaiting for the next request
CStarting the Flask app
DStopping the server
💡 Hint
Check the 'Action' and 'Result' columns at step 7 in execution_table
At which step does the Flask app start listening on the network?
AStep 2
BStep 6
CStep 4
DStep 8
💡 Hint
Look for when app.run() is called in execution_table
If we change host='127.0.0.1' in app.run(), what changes in the server behavior?
AServer listens only on the Raspberry Pi itself
BServer listens on all network interfaces
CServer stops immediately
DServer listens on port 80
💡 Hint
Refer to key_moments about host='0.0.0.0' and network access
Concept Snapshot
Flask web server on Raspberry Pi:
- Import Flask and create app object
- Define routes with @app.route decorator
- Run app with app.run(host='0.0.0.0', port=5000) to listen on all interfaces
- Server waits for HTTP requests and responds
- Stop server with interrupt (Ctrl+C)
Full Transcript
This visual execution shows how to run a Flask web server on a Raspberry Pi. First, the Flask app object is created. Then, a route '/' is defined with a function that returns a greeting. Running app.run with host='0.0.0.0' starts the server listening on all network interfaces, allowing other devices to connect. When a request comes to '/', Flask calls the function and sends back the response. The server waits for more requests until stopped. Key points include why host='0.0.0.0' is used and how routes connect URLs to functions.