Ruter og Blueprints

Flask-appen implementerer Blueprints, dette sørger for at applikasjonen kan utvikles på et modulært vis. Rutene er lagt opp slik:

Ruter

URL

HTTP-metode

Beskrivelse

Modul

/

GET

Sender brukeren videre til /front.

app.landing

/set_cookie

GET

Oppretter cookie med uuid og en tilfeldig generert farge.

app.landing

/front/

POST, GET

Mottar brukerens valg av styrke, og laster inn nettsiden.

app.front

/mqtt

POST

Mottar melding og videresender til nettleser.

app.mqtt

/mqtt/location

POST

Videresender lokasjonsdata til nettleser.

app.mqtt

/mqtt/returndata

POST

Håndterer returdata basert på lokasjon.

app.mqtt

Blueprints hjelper oss å definere kategorierer og underkategorier enkelt. Følgende kode demonstrerer denne funksjonen.

from flask import Blueprint, request, jsonify
bp = Blueprint('mqtt', __name__, url_prefix='/mqtt')

@bp.route('/', methods=['POST'])
# gir ruten /mqtt/
def getmqtt():
    return jsonify({"status": "success"}), 200

@bp.route('/location', methods=['POST'])
# gir ruten /mqtt/location
def handle_locations():
    return jsonify({"status": "success"}), 200

Som vi kan se fra eksempelet, hjelper Blueprint oss å holde koden modulær og kompakt.

Moduler

Flask-appens moduler er organisert med følgende Blueprints: - app.api: Håndterer API-forespørsler fra frontend. - app.mqtt: Kommuniserer med MQTT-megleren.