Пользователь сможет зайти из браузера и увидеть (и скачать) любой файл:
Если нужно что-то посложнее, например управлять каким-либо устройством, придется написать свой код.
Рассмотрим минимальный пример работающего web-сервера на Python. Для примера, будем управлять светодиодом, как и в случае c ESP32. Но в отличие от ESP32, Raspberry Pi полноценно может работать с файлами, так что хранить HTML прямо в коде не требуется, просто сохраним файл как index.html.
<html>
<head><title>Raspberry Pi server</title></head>
<body>
Turn <a href="/H">LED ON</a><br>
Turn <a href="/L">LED OFF</a><br>
</body>
</html>
Сам код сервера будет весьма прост. Естественно, это минимальный пример, реальный веб-сервер может поддерживать практически все современные технологии - POST и GET-запросы, Javascript и пр. Полет фантазии тут неограничен. Нам же будет достаточно следующего кода:
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class Server(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
with open('index.html', 'r') as myfile:
data = myfile.read()
self.wfile.write(data)
if "/H" in self.path:
print "LED ON"
if "/L" in self.path:
print "LED OFF"
if __name__ == "__main__":
server_address = ('', 8000)
httpd = HTTPServer(server_address, Server)
print 'Starting httpd...'
try:
httpd.serve_forever()
except:
pass
print 'Done'
Самостоятельная работа: дописать код включения и выключения светодиода вместо функции print "LED ON" и print "LED OFF". Перед вызовом сервера serve_forever также нужно будет дописать код инициализации GPIO.