za. okt 5th, 2024

bron: https://www.electromaker.io/tutorial/blog/how-to-make-a-raspberry-pi-python-web-server

Inhoud
- Voorbereiding
- Installatie
- Pagina's aanmaken
- Service maken

Voorbereiding
Maak deze mappen structuur aan bijvoorbeeld in homedirectory.
mkdir /home/pi/webserver
mkdir /home/pi/webserver/statics
mkdir /home/pi/webserver/templates

Installeer Python Flask.
sudo apt-get install python3-flask
Maak ‘webserver.py‘ aan.
nano /home/pi/webserver/webserver.py
Zet onderstaande er in.
from flask import Flask, render_template
app = Flask(name)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/test_py')
def test():
return 'Raspberry Pi!'
@app.route('/test')
def test():
return render_template('test/index.html')
if name == 'main':
app.run(debug=True, host='0.0.0.0')
CTRL+X

Maak webpagina aan.
nano /home/pi/webserver/templates/index.html
Zet onderstaande er in.
<html>
<head>
</head>
<body>
<h1>Raspberry Pi: Python3 WebServer</h1><hr>
Bestandslocatie: /home/pi/webserver
<hr>
<a href=test_py>In webserver.py</a><br>
<a href=test>Verwijzing naar HTML bestand
</a>
<br>
</body>
</html>

Maak configuratie bestand (css) aan.
nano /home/pi/webserver/static/style.css
Zet onderstaande er in.
body {
background: green;
color: black;
}

In de map templates kun jij je html pagina’s neerzetten. In het geval zoals hierboven beschreven staat,kun maak je deze aan ‘/home/pi/webserver/templates/test/index.html’.

Je kunt de webserver handmatig starten door dit in te type:
python3 webserver.py

Services maken
nano /home/pi/webserver/start.sh
Inhoud
#!/bin/bash python3 /home/pi/webserver/webserver.py
CTRL+X

nano /home/pi/webserver/stop.sh
Inhoud
#!/bin/bash for KILLPID in `ps ax | grep ‘webserver’ | awk ‘{print $1;}’`; do
kill -9 $KILLPID;
CTRL+X

Bestanden uitvoerbaar maken.
chmod a+x /home/pi/webserver/st*

nano /etc/systemd/system/python_web.service
Inhoud
[Unit]
Description=python webserver service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash /home/pi/webserver/start.sh
ExecStop=/bin/bash /home/pi/webserver/stop.sh
Restart=always
RestartSec=5
TimeoutSec=60
RuntimeMaxSec=infinity
PIDFile=/tmp/nome_script.pid

[Install]
WantedBy=multi-user.target
CTRL+X

sudo systemctl enable /etc/systemd/system/python_web.service
sudo systemctl daemon-reload
sudo service python_web start

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *