Урок 6. Вывод веб-страницы
В прошлом уроке мы сделали из нашего контроллера веб-сервер, и вывели приветственное сообщение. В этом уроке будем выводить не сообщение, а целую веб-страницу.
Сообщения неудобны тем, что это простой текст. То есть они подойдут для вывода справочной информации, но в то же время с текстом нельзя взаимодействовать. К тому же текст этот никак нельзя форматировать, к примеру нам хочется вывести текст разными цветами и в различном расположении.
Возьмём сформированную нами интернет страницу из урока 4 предыдущего раздела. Поместим код этой страницы в функцию html_page()
, которая и будет его возвращать (код этой страницы). Текст поместим между тройными кавычками - такая конструкция позволит Python считать что всё что находится между тройными кавычками - является текстом. Даже если там попадётся текст в кавычках. Функция будет выглядеть следующим образом:
# функция возвращает интернет-страницу def html_page(): html_page = """ <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Мой веб-сервер Гиккон</title> </head> <body> <h1>Состояние световых приборов</h1> <p>Все лампочки <font color=red>выключены</font></p> </body> </html> """ return(html_page)
Теперь отредактируем функцию start_page
, чтобы она вместо простого сообщения показывала в ответ нашу интернет-страницу:
# описание функции-обработчика стартовой страницы def start_page(request): server.send(html_page())
Полностью код скрипта будет выглядеть следующим образом:
# используемые модули import network from time import sleep from micropyserver import MicroPyServer # параметры сети wifi_name = "qwerty" wifi_pass = "12345678" # соединение с wifi в качестве клиента wifi = network.WLAN(network.STA_IF) wifi.active(True) # подключение к сети while not wifi.isconnected(): wifi.connect(wifi_name, wifi_pass) sleep(1) # вывод IP-адреса print("Успешно подключились. IP адрес: " + wifi.ifconfig()[0]) # описание функции-обработчика стартовой страницы def start_page(request): server.send(html_page()) # функция возвращает интернет-страницу def html_page(): html_page = """ <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Мой веб-сервер Гиккон</title> </head> <body> <h1>Состояние световых приборов</h1> <p>Все лампочки <font color=red>выключены</font></p> </body> </html> """ return(html_page) # создание сервера server = MicroPyServer() # добавление маршрута server.add_route("/", start_page) # старт сервера server.start()
Сохраните этот скрипт в рабочем каталоге на компьютере, затем подключитесь к контроллеру с помощью файлового менеджера, скопируйте данный скрипт как основной. Не забудьте скопировать на контроллер модуль micropyserver.py. После этого отключитесь от режима обмена файлами и перезагрузите контроллер. В терминале Вы снова увидите IP-адрес, который был присвоен плате.
Успешно подключились. IP адрес: 192.168.1.167
Зайдите на этот адрес с помощью браузера и увидите новую страницу нашего сервера:
Запомнить:
- Помимо текста в качестве стартовой можно выводить интернет страницу
- Это удобнее для наглядности информации
- Появляется возможность добавлять любые элементы на страницу