Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot:exp61 [2020/06/18 19:26] labuser29products:laboratory_iot:exp61 [2024/12/06 16:33] (текущий) labuser30
Строка 1: Строка 1:
-===== Эксперимент 61. Подмена данных в веб- странице =====+===== Эксперимент 61. Подмена данных в веб-странице =====
  
-В прошлом эксперименте мы научились создавать простые веб- страницы с формой для отправки данных на сервер. На странице было текстовое поле, в которое можно было ввести значение от 0 до 1023. После ввода числа и нажатия на кнопку Send проиходила отправка данных из формы на сервер. Сервер принимал эти данные, изменял состояние светодиода, вновь считывал из файла page.html содержимое и вновь отправлял его в браузер клиенту. Таким образом после отправки данных сервер отправлял нам ту же самую страницу и мы могли ввести новое значение в текстовое поле и снова отправить.+В прошлом эксперименте мы научились создавать простые веб-страницы с формой для отправки данных на сервер. На странице было текстовое поле, в которое можно было ввести значение от 0 до 1023. После ввода числа и нажатия на кнопку Send происходила отправка данных из формы на сервер. Сервер принимал эти данные, изменял состояние светодиода, вновь считывал из файла page.html содержимое и вновь отправлял его в браузер клиенту. Таким образом после отправки данных сервер отправлял нам ту же самую страницу и мы могли ввести новое значение в текстовое поле и снова отправить.
  
-Все хорошо, кроме одногостраница каждый раз загружалась в браузер в своем первозданном виде. В ней мы изначально прописали значение текстового поля по- умолчанию 512. И каждый раз после отправки данных в текстовом поле снова находилось число 512 вне зависимости от того что мы туда вводили. Это не очень удобно. Было бы здорово, если бы после ввода числа и отправки формы нам возвращалась бы страница с тем числом, которые мы ввели туда в прошлый раз. Это позволило бы нам видеть текущее значение яркости светодиода.+Все хорошо, кроме одного — страница каждый раз загружалась в браузер в своем первозданном виде. В ней мы изначально прописали значение текстового поля по- умолчанию 512. И каждый раз после отправки данных в текстовом поле снова находилось число 512 вне зависимости от того что мы туда вводили. Это не очень удобно. Было бы здорово, если бы после ввода числа и отправки формы нам возвращалась бы страница с тем числом, которые мы ввели туда в прошлый раз. Это позволило бы нам видеть текущее значение яркости светодиода.
  
 Чтобы это сделать нам необходимо заменять данные в веб странице. Изначально мы прописали в ней жестко Чтобы это сделать нам необходимо заменять данные в веб странице. Изначально мы прописали в ней жестко
Строка 26: Строка 26:
 </html> </html>
 </file> </file>
- 
-Как видно, мы заменили жестко прописанное число 512 на метку ''<=VALUE=>''. Теперь перед выводом этой страницы в браузер нам нужно произодвить поиск с ее тексте ''<=VALUE=>'' и замену этой метки на реальное число. 
  
 <WRAP center round important 60%> <WRAP center round important 60%>
 Сохрани эту страницу в корне файловой системы микроконтроллера под именем page2.html Сохрани эту страницу в корне файловой системы микроконтроллера под именем page2.html
 </WRAP> </WRAP>
 +
 +Как видно, мы заменили жестко прописанное число 512 на метку ''<=VALUE=>''. Теперь перед выводом этой страницы в браузер нам нужно производить поиск с ее тексте ''<=VALUE=>'' и замену этой метки на реальное число.
  
 Теперь новый код программы: Теперь новый код программы:
Строка 46: Строка 46:
 pwmLed = PWM(Led) pwmLed = PWM(Led)
  
-wlan_id = "HUAWEI P10 lite+wlan_id = "Wi-Fi_Name
-wlan_pass = "33947255"+wlan_pass = "Wi-Fi_Password"
  
 wlan = network.WLAN(network.STA_IF) wlan = network.WLAN(network.STA_IF)
Строка 80: Строка 80:
 server.start() server.start()
 </file> </file>
 +
 +<WRAP center round important 60%>
 +Первым делом в коде программы нужно заменить ''Wi-Fi_Name'' на имя нужной сети, а ''Wi-Fi_Password'' на пароль от нее.
 +</WRAP>
 +
 +По сравнению с кодом прошлого эксперимента появилась одна строка
 +<code python[enable_line_numbers="2", start_line_numbers_at="36"]>
 +    html = html.replace('<=VALUE=>', duty)
 +</code>
 +
 +Для замены метки на данные мы применили оператор ''replace(что_меняем, на_что_меняем)''. Теперь после отправки данных из формы нам вернется веб-страница с таким же значением, которое мы вводили перед отправкой.