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:
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.