Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekt:python_fastapi

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekt:python_fastapi [2026/02/21 12:39] torsten.roehlprojekt:python_fastapi [2026/02/23 07:26] (aktuell) – [Systemd] torsten.roehl
Zeile 5: Zeile 5:
  
 //In diesem Projekt wird auf dem Raspberry Pi eine Weboberfläche mit FastAPI erstellt, über die eine LED-Ampel geschaltet und die Temperatur eines DS18B20 angezeigt werden kann. Die Anwendung ist im lokalen Netzwerk erreichbar, sodass LEDs und Temperatursensor bequem über einen Webbrowser im LAN gesteuert und überwacht werden können.// //In diesem Projekt wird auf dem Raspberry Pi eine Weboberfläche mit FastAPI erstellt, über die eine LED-Ampel geschaltet und die Temperatur eines DS18B20 angezeigt werden kann. Die Anwendung ist im lokalen Netzwerk erreichbar, sodass LEDs und Temperatursensor bequem über einen Webbrowser im LAN gesteuert und überwacht werden können.//
 +
 +|{{ :raspberry_pi:web_1.png?300 |}}|
 +|Die LED-Ampel kann nun über den Webbrowser gesteuert und die Temperatur ausgelesen werden.|
 ====== Überblick ====== ====== Überblick ======
   * Voraussetzungen   * Voraussetzungen
Zeile 275: Zeile 278:
  
     return html     return html
- 
  
 @app.get("/led", response_class=HTMLResponse) @app.get("/led", response_class=HTMLResponse)
 def led_page(): def led_page():
     r, y, g = hardware.status()     r, y, g = hardware.status()
 +
     return HTMLResponse(     return HTMLResponse(
         load_template("led.html", {         load_template("led.html", {
             "{{R}}": r,             "{{R}}": r,
             "{{Y}}": y,             "{{Y}}": y,
-            "{{G}}": g+            "{{G}}": g
 +            "{{R_ON}}": "on" if r == 1 else "", 
 +            "{{Y_ON}}": "on" if y == 1 else "", 
 +            "{{G_ON}}": "on" if g == 1 else "",
         })         })
     )     )
- 
  
 @app.get("/led/{color}/{value}") @app.get("/led/{color}/{value}")
Zeile 332: Zeile 337:
 === Konfiguration === === Konfiguration ===
  
-In der Datei '' /etc/apache2/sites-available/000-default.conf'', innerhalb von ''<VirtualHost *:80>'' folgendes einfügen:+In der Datei '' /etc/apache2/sites-available/000-default.conf'', 
 +innerhalb von ''<VirtualHost *:80>'' folgendes einfügen:
  
  
Zeile 338: Zeile 344:
  
 Bevor die Datei ''/etc/apache2/sites-available/000-default.conf'' geändert wird, Bevor die Datei ''/etc/apache2/sites-available/000-default.conf'' geändert wird,
- 
 sollte die vorhandene Konfiguration gesichert werden. sollte die vorhandene Konfiguration gesichert werden.
  
 <code bash> <code bash>
-sudo mv /etc/apache2/sites-available/000-default.conf +cd  /etc/apache2/sites-available/ 
-        /etc/apache2/sites-available/000-default.conf.course_backup+sudo  cp 000-default.conf 000-default.conf.course_backup
 </code> </code>
  
 </note> </note>
- 
-<code bash> 
-sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.backup 
-</code> 
  
  
Zeile 364: Zeile 365:
  
 === Aktivieren === === Aktivieren ===
 +Damit die Weiterleitung an die FastAPI-Anwendung funktioniert, müssen die benötigten Apache-Module aktiviert und der Webserver neu gestartet werden.
 +
 <code bash> <code bash>
 sudo a2enmod proxy sudo a2enmod proxy
Zeile 393: Zeile 396:
  
 === Registrierung === === Registrierung ===
 +Damit die neu erstellte Service-Datei von ''systemd'' erkannt wird und die Anwendung automatisch beim Systemstart gestartet wird, muss der Dienst neu geladen, aktiviert und gestartet werden.
 +
 <code bash> <code bash>
 sudo systemctl daemon-reload sudo systemctl daemon-reload
 sudo systemctl enable course_web sudo systemctl enable course_web
 sudo systemctl start course_web       # starten sudo systemctl start course_web       # starten
 +
 +</code>
 +
 +Nützlich:
 +<code bash>
 +sudo systemctl restart course_web     # neu starten
 sudo systemctl status course_web      # prüfen!!! sudo systemctl status course_web      # prüfen!!!
 </code> </code>
projekt/python_fastapi.1771677561.txt.gz · Zuletzt geändert: von torsten.roehl