Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
products:laboratory_iot:exp61 [2020/06/18 19:03] – создано labuser29 | products:laboratory_iot:exp61 [2024/12/06 16:33] (текущий) – labuser30 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ===== Эксперимент 61. Подмена данных в веб- странице ===== | + | ===== Эксперимент 61. Подмена данных в веб-странице ===== |
+ | |||
+ | В прошлом эксперименте мы научились создавать простые веб-страницы с формой для отправки данных на сервер. На странице было текстовое поле, в которое можно было ввести значение от 0 до 1023. После ввода числа и нажатия на кнопку Send происходила отправка данных из формы на сервер. Сервер принимал эти данные, | ||
+ | |||
+ | Все хорошо, | ||
+ | |||
+ | Чтобы это сделать нам необходимо заменять данные в веб странице. Изначально мы прописали в ней жестко | ||
+ | |||
+ | <code html> | ||
+ | <input type=" | ||
+ | </ | ||
+ | |||
+ | Теперь нам нужно подумать как вместо 512 выводить каждый раз другое значение, | ||
+ | |||
+ | <file html page2.html[enable_line_numbers=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | <form action="/"> | ||
+ | <input type=" | ||
+ | <input type=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Сохрани эту страницу в корне файловой системы микроконтроллера под именем page2.html | ||
+ | </ | ||
+ | |||
+ | Как видно, мы заменили жестко прописанное число 512 на метку ''< | ||
+ | |||
+ | Теперь новый код программы: | ||
+ | <file python Exp61.py[enable_line_numbers=" | ||
+ | from micropyserver import MicroPyServer | ||
+ | import time | ||
+ | from machine import Pin, PWM | ||
+ | import network | ||
+ | import gc | ||
+ | _init() | ||
+ | gc.collect() | ||
+ | |||
+ | Led = Pin(13, Pin.OUT) | ||
+ | pwmLed = PWM(Led) | ||
+ | |||
+ | wlan_id = " | ||
+ | wlan_pass = " | ||
+ | |||
+ | wlan = network.WLAN(network.STA_IF) | ||
+ | wlan.active(True) | ||
+ | wlan.connect(wlan_id, | ||
+ | time.sleep(1) | ||
+ | |||
+ | while wlan.isconnected() == False: | ||
+ | pass | ||
+ | |||
+ | print(' | ||
+ | |||
+ | |||
+ | def index(request, | ||
+ | duty = ' | ||
+ | if (' | ||
+ | duty = params[' | ||
+ | pwmLed.duty(int(duty)) | ||
+ | |||
+ | |||
+ | html_file = open(" | ||
+ | html = html_file.read() | ||
+ | |||
+ | html = html.replace('< | ||
+ | |||
+ | html_file.close() | ||
+ | server.send(html, | ||
+ | |||
+ | |||
+ | server = MicroPyServer() | ||
+ | server.add_route("/", | ||
+ | server.start() | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Первым делом в коде программы нужно заменить '' | ||
+ | </ | ||
+ | |||
+ | По сравнению с кодом прошлого эксперимента появилась одна строка | ||
+ | <code python[enable_line_numbers=" | ||
+ | html = html.replace('< | ||
+ | </ | ||
+ | |||
+ | Для замены метки на данные мы применили оператор '' |