Легкий веб-сервер HTTP MicroWebSrv поддерживает языки шаблонов HTML / Python

Существует много языков программирования, которые можно использовать для создания веб-страниц: HTML, HTML5, JavaScript, PHP и так далее. А Python? Очевидно, да, так как веб-сервер MicroWebSrv – в основном предназначен для платформ ESP32, которые работаю под управлением MicroPython, поскольку платы Pycom – поддерживают вставку Python кода внутрь файлов “HTML” с расширением .pyhtml.

Код можно найти на Github и состоит только из трех файлов:

  • microWebSrv.py – Веб-сервер
  • microWebSocket.py – Дополнительная поддержка WebSockets
  • microWebTemplate.py – Дополнительный язык шаблонов для .pyhtml рендеринга страниц

Помимо файлов HTML / Python, веб-сервер может обрабатывать запросы GET, POST и так далее, встроенный полный REST API, обработчики маршрутизации, WebSockets и т.д…

Вот как выглядит смешанный HTML + Python файл .pyhtml:

<html>
  <head>
    <title>TEST PYHTML</title>
  </head>
  <body>
    <h1>BEGIN</h1>
    {{ py }}
      def _testFunction(x) :
        return "IN TEST FUNCTION %s" % x
    {{ end }}
    <div style="background-color: black; color: white;">
      {{ for toto in range(3) }}
        This is an HTML test...<br />
        TOTO = {{ toto + 1 }} !<br />
        {{ for toto2 in range(3) }}
          TOTO2 = {{ _testFunction(toto2) }}
        {{ end }}
        Ok good.<br />
      {{ end }}
    </div>
    {{ _testFunction(100) }}<br />
    <br />
    {{ if 2+5 < 3 }}
      IN IF (1)
    {{ elif 10+15 != 25 }}
      IN ELIF (2)
    {{ elif 10+15 == 25 }}
      IN ELIF (3)
    {{ else }}
      IN ELSE (4)
    {{ end }}
  </body>
</html>

Можно использовать двойные фигурные скобки {{ and }} для вставки кода MicroPython, операторов if, циклов или включения.

Нет уверенности, что это имеет смысл для всех платформ, но например, если ваша плата ограничена ресурсами и уже запускает прошивку MicroPython и у нее уже есть интерпретатор Pythonit, и вы можете обойтись без дополнительной оперативной памяти и хранилища для интерпретатора JavaScript.

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments