Flask & the project: the system gets a face
420-302-VA · WEEK 11 · FALL 2026

Utility · for the week and the whole project

Resources

Web development has the deepest documentation culture in software, and two sources carry almost all of it: the framework's own docs and MDN, the web platform's reference. Both will serve you daily through the project weeks.

References you will actually use

ResourceWhat it isUse it when
Flask documentationThe framework's own docs: quickstart, routing, templates, request data, patternsAny Flask question past this hub's slice; the Quickstart re-teaches today in its own words
Jinja documentationThe template language: variables, loops, conditionals, inheritanceThe project dashboard outgrows single placeholders
MDN: HTTPThe web platform's reference on the protocol: methods, status codes, headers, cachingA status code or header you have not met; the theory page, at full depth
MDN: HTMLEvery element, attribute by attributeBuilding out the project's page beyond the ten tags
MDN: Fetch APIThe browser's request machinery, exactly as the dashboard uses itPOSTs with other body types, errors, timeouts, anything past the two calls you have
paho-mqtt on PyPIWeek 9's bookmark, still currentloop_start/loop_stop details and the threaded-loop notes behind the bridge

Background reading, stage by stage

After reading…Deepen with
The web, quicklyWikipedia: HTTP and Web server, the protocol's history and versions, and the server role your Pi now plays
The dashboardWikipedia: WebSocket, the push-to-browser option this week named and declined, so you know what you declined
The project beginsWeek 5's hub, re-read with stakes: the five qualities and the verification table are now grading instruments aimed at you

Practice between classes

  • Narrate the circle. The Set-button path, protocol by protocol, from memory, until it takes under thirty seconds; it is the exit ticket, a demo-day answer, and the best systems interview answer this course gives you.
  • Break it on purpose. Remove 0.0.0.0, re-block 5000, rename the template, flip debug=True: provoke each wall once, read its signature, fix it. The troubleshoot table learned this way is yours forever.
  • Design your project's routes. On paper: every path, its method, its answer's shape, next to your topic table in docs/. Two namespaces, one system, both deliberate.
  • Skeleton work. The D2 target is end to end; spend home time on your project's scariest interface first.
  • Ten minutes of MDN. Skim the HTTP overview once; recognizing header names now saves console-squinting later.

Glossary

TermMeaning
HTTPThe web's client-initiated, stateless request/response protocol, over TCP
Client / serverThe asker and the answerer of one exchange; roles, not machines
Request / responseThe matched pair: method, path and headers in; status, headers and body out
URLScheme, host, port, path: protocol, machine, door, resource
GET / POSTRead, safe to repeat / submit, acts; the dashboard uses each by its contract
Status codeThe response's verdict: 200 OK, 400 bad request, 404 not found, 500 server error
StatelessEach request stands alone; the reason the bridge holds the latest values
HTMLThe tag tree pages are made of; ten tags carry this week
FlaskPython's standard microframework: routing, templates, a dev server, little else
RouteOne registered path-and-method mapped to one Python function
Template / JinjaHTML with {{ blanks }} filled per request from templates/
jsonify / JSON APIRoutes answering with data for scripts and pages; Week 9's format, other protocol
Dev serverFlask's built-in server: bench-right, production-wrong, and says so
Bind addressWhich interfaces a server listens on; 127.0.0.1 loopback-only vs 0.0.0.0 all
fetchThe browser's JavaScript HTTP call; the dashboard's asking half
PollingAsking on a timer; right-sized here, indicted in Week 9, both for stated reasons
The bridgeShared latest-values state: MQTT callbacks write, routes read
loop_startpaho's background-thread network loop; loop_forever's cohabiting sibling
WebSocket / SSEThe web's push options: named this week, available to ambitious projects, not required
Walking skeletonThe thinnest end-to-end version that runs; the D2 target and every hub's own method
LIAThe term project: 40 %, pairs, five milestones D1–D5, public demo in Week 15