38. Lektion: WebserverAus Attraktor WikiVersion vom 7. Dezember 2023, 09:24 Uhr von Kapest (Diskussion | Beiträge) InhaltsverzeichnisWebserverWlan einrichtenimport network # Wlan Verbindung herstellen wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print('connecting to network...') wlan.connect('ssid', 'key') while not wlan.isconnected(): pass print('network config:', wlan.ifconfig()) Das Webserver Packet phewFür den Raspberry Pi Pico W gibt es ein Packet, das alles enthält, was zur Einrichtung eines Webservers auf dem Pico erforderlich ist. Es heißt "phew" und ist von Github unter https://github.com/pimoroni/phew zu beziehen. Das Archiv muss entpackt und dann das Unterverzeichnis "phew" ins Filesystem des Pico kopiert werden.
from phew import server # hier werden die auszuliefernden Webseiten definiert. Siehe nächste Codebox. server.run() Webseiten generierenEine Webseite wird erstellt indem eine Funktion definiert wird, die den Inhalt des Response zurück gibt. Der Funktion muss request übergeben werden.
Mit Decorator:@server.route("/random", methods=["GET"]) def random_number(request): import random min = int(request.query.get("min", 0)) max = int(request.query.get("max", 100)) return str(random.randint(min, max)) Es muss dem Decorator die Route - die Zeichen, die in der URL hinter der IP-Adresse stehen - und die HTTP-Methode (GET oder POST) ünergeben werden. Die Definition folgt in der nächsten Zeile. Mit Route-Tabelle:# Webseiten definieren def random_number(request): import random min = int(request.query.get("min", 0)) max = int(request.query.get("max", 100)) return str(random.randint(min, max)) def info_site(request): return "<h1>Infoseite vom Raspberry Pi Pico W</h1>" # Routing Tabelle server.add_route("/random", random_number, methods=["GET"]) server.add_route("/info", info_site, methods=["GET"]) Response erzeugenDer Response ist ein String der alle Informationen enthält die an den Client zurückgegeben werden sollen.
Einfacher TextIn einer VarioablenAus einer Datei
from phew.template import render_template from os import stat HTDOCS = 'htdocs/' # Hier ist der "/" wichtig, sonst funktioniert es nicht! from phew import server @server.route("/random", methods=["GET"]) def random_number(request): import random min = int(request.query.get("min", 0)) max = int(request.query.get("max", 100)) return str(random.randint(min, max)) @server.route("/info", methods=["GET"]) def info_site(request): return "<h1>Infoseite vom Raspberry Pi Pico W</h1>" @server.route("/test", methods=["GET"]) def test_site(request): return render_template(HTDOCS + "html-test_001.html") # return render_template("html-test_001.html") # return ''' # <h1>Überschrift</h1> # Dieses ist eine kleine HTML-Testseite. # <br> # Noch ist es nur ein einfacher Test! # ''' # return render_template("html-test_001.html") @server.catchall() def catch_all(request): return "<h1>Hallo, diese Webseite gibt es nicht!</h1>", 404 # return render_template(HTDOCS + index.html)
Lager
|