projekt:python_fastapi
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| projekt:python_fastapi [2026/02/21 08:30] – [Software] torsten.roehl | projekt: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.// | ||
| + | |||
| + | |{{ : | ||
| + | |Die LED-Ampel kann nun über den Webbrowser gesteuert und die Temperatur ausgelesen werden.| | ||
| ====== Überblick ====== | ====== Überblick ====== | ||
| * Voraussetzungen | * Voraussetzungen | ||
| Zeile 48: | Zeile 51: | ||
| ├── app.py | ├── app.py | ||
| ├── core/ | ├── core/ | ||
| + | │ | ||
| │ | │ | ||
| └── html/ | └── html/ | ||
| Zeile 199: | Zeile 203: | ||
| < | < | ||
| - | < | + | < |
| + | <p>Status: {{R}}</p> | ||
| <a href="/ | <a href="/ | ||
| <a href="/ | <a href="/ | ||
| - | < | + | < |
| + | <p>Status: {{Y}}</p> | ||
| <a href="/ | <a href="/ | ||
| <a href="/ | <a href="/ | ||
| - | < | + | < |
| + | <p>Status: {{G}}</p> | ||
| <a href="/ | <a href="/ | ||
| <a href="/ | <a href="/ | ||
| Zeile 271: | Zeile 278: | ||
| return html | return html | ||
| - | |||
| @app.get("/ | @app.get("/ | ||
| def led_page(): | def led_page(): | ||
| r, y, g = hardware.status() | r, y, g = hardware.status() | ||
| + | |||
| return HTMLResponse( | return HTMLResponse( | ||
| load_template(" | load_template(" | ||
| " | " | ||
| " | " | ||
| - | " | + | " |
| + | " | ||
| + | " | ||
| + | " | ||
| }) | }) | ||
| ) | ) | ||
| - | |||
| @app.get("/ | @app.get("/ | ||
| Zeile 323: | Zeile 332: | ||
| ===== Konfiguration ===== | ===== Konfiguration ===== | ||
| + | In diesem Abschnitt wird die Einbindung der **FastAPI-Anwendung** in den Apache-Webserver sowie die Einrichtung als '' | ||
| ==== Apache Proxy ==== | ==== Apache Proxy ==== | ||
| === Konfiguration === | === Konfiguration === | ||
| - | In der Datei '' | + | In der Datei '' |
| + | innerhalb von ''< | ||
| + | |||
| + | |||
| + | <note tip> **Tip** | ||
| + | |||
| + | Bevor die Datei ''/ | ||
| + | sollte die vorhandene Konfiguration gesichert werden. | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | sudo cp 000-default.conf 000-default.conf.course_backup | ||
| + | </ | ||
| + | |||
| + | </ | ||
| <code bash / | <code bash / | ||
| Zeile 341: | Zeile 365: | ||
| === Aktivieren === | === Aktivieren === | ||
| + | Damit die Weiterleitung an die FastAPI-Anwendung funktioniert, | ||
| + | |||
| <code bash> | <code bash> | ||
| sudo a2enmod proxy | sudo a2enmod proxy | ||
| Zeile 370: | Zeile 396: | ||
| === Registrierung === | === Registrierung === | ||
| + | Damit die neu erstellte Service-Datei von '' | ||
| + | |||
| <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 | + | sudo systemctl start course_web |
| + | |||
| + | </ | ||
| + | |||
| + | Nützlich: | ||
| + | <code bash> | ||
| + | sudo systemctl restart course_web | ||
| + | sudo systemctl status course_web | ||
| </ | </ | ||
projekt/python_fastapi.1771662618.txt.gz · Zuletzt geändert: von torsten.roehl
