Урок 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

Зайдите на этот адрес с помощью браузера и увидите новую страницу нашего сервера:

Запомнить:

  • Помимо текста в качестве стартовой можно выводить интернет страницу
  • Это удобнее для наглядности информации
  • Появляется возможность добавлять любые элементы на страницу

Предыдущий урок

Следующий урок