Это старая версия документа!
В прошлом эксперименте мы научились передавать данные на сервер через параметры в URL. Мы вручную формировали строку адреса, что не очень удобно. На настоящих сайтах и веб- приложениях такого не происходит. Для удобства пользователя предусмотрены веб- формы. Форма это набор полей для ввода данных и кнопка для отправки формы. При нажатии на кнопку происходит отправка запроса на сервер с передачей данных, введенных в форму.
Ранее мы уже выводили пользователю в браузер разничные строки. Это были просто строки обычного текста, полноценной веб- страницей назвать их нельзя. Чтобы создавать полноценные веб- страницы нужно освоить язык на котором они пишутся — HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки»). HTML нельзя назвать языком программирования, это язык форматирования и разметки текста, изображений, форм, ссылок и других объектов. В HTML нет функций, процедур, переменных и прочего. В нем есть только команды, называемые тегами, для описания страницы. Можно указывать размер шрифта, цвет, форматирование. Можно внедрять картинки, таблицы, видео, формы и другое.
Язык HTML заслуживает отдельного большого учебного пособия, поэтому мы, конечно, не будем изучать сейчас все его возможности. Но мы создадим простую веб- страницу с формой для управления яркостью светодиода. Чтобы больше не приходилось вводить цисло прямо в адресной строке.
Если у тебя есть желание, то можно изучить HTML по самоучителям, например вот этим
Сначала создадим файл веб страницы page.html
. Этот файл с этим кодом нужно загрузить в корень внутренней файловой системы микроконтроллера.
Большинство тегов в HTML состоят из двух частей- открывающего тега и закрывающего, а содержимое пишется между открывающим и закрывающим тегами. Вся веб станица находится внутри тегов <html>…</html>. Далее веб страница делится на заголовок <head>…</head> и тело страницы <body>…</body>. В заголовке прописываются такие параметры как название страницы, язык и прочие служебные данные. Они не являются обязательными и мы оставим заголовок пустым.
Внутри тела страницы мы создаем заголовок второго уровня <h2>…</h2> с поясняющим текстом: Введите яркость светодиода в промежутке от 0 до 123. Далее создаем форму с помощью тега <form>:
Форма имеет атрибут action
с адресом, куда отправлять данные.
Текстовое поле ввода создается тегом <input>. Атрибут type=«text» означает тип поля, в данном случае это текстовое поле. Атрибут name=«duty» устанавливает имя поля, а атрибут value=«512» устанавливает значение поля по умолчанию.
Кнопка отправки формы создаются также тегом input, но с типом type=«submit».
Теперь код программы:
from micropyserver import MicroPyServer import time from machine import Pin, PWM import network import gc import re _init() gc.collect() Led = Pin(13, Pin.OUT) pwmLed = PWM(Led) wlan_id = "HUAWEI P10 lite" wlan_pass = "33947255" wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(wlan_id, wlan_pass) time.sleep(1) while wlan.isconnected() == False: pass print('Device IP:', wlan.ifconfig()[0]) def index(request, params): if ('duty' in params): pwmLed.duty(int(params['duty'])) html_file = open("page.html") html = html_file.read() html_file.close() server.send(html, content_type="Content-Type: text/html") server = MicroPyServer() server.add_route("/", index) server.start()