Мне как питонисту немного тяжко писать сложные Javascript-ы для улучшения функционала пользовательских страниц веб-проектов.
Поэтому я искал какой-то способ упростить написания фронтенда на Javascript.
Сначала мне попался Nodejs и его coffeescript который по синтаксису похож на питон, но все же Nodejs это серверная платформа (бекенд) и не хочется распыляться поддержку еще одной платформы для одного веб-проекта (обновление модулей и т.д.).
Потом я встретил проект PyJamas, который является транслятором кода Python в код Javascript. Здорово! почти то, что нужно! но нужно встраивать автоматизацию генерации кода на javascript и следить за ссылками на готовые файлы. Но похоже скорость ответа страницы будет зависеть от того как быстро переведется весь код питона для фронтенда в код Javascript.
Но самое простое решение это использовать проект Brython . Фактически это транслятор кода питон в javascript написанный на самом javascript-е и выполняется на стороне клиента. Отрицательной стороной является на мой взгляд - нагрузка клиента (браузера), т.к. появляется дополнительные процессы для трансляции кода.
Вот пример как можно просто встроить питон в веб страничку:
на сайта проекта предлагают встраивать так:
Здесь brython/src/test.py - файл с исходниками на питоне для фронтенда,
start_py() - функция привязанные к какому либо событию на страничке.
Во всех функциях, где будет использоваться питон обязательно сначала нужно использовать функцию brython();
Далее можно вызывать функции питона или прямо писать на питоне, только код нужно обернуть в <script type="text/python">.
Вот так!
Мне кажется это весьма удобно.
Поэтому я искал какой-то способ упростить написания фронтенда на Javascript.
Сначала мне попался Nodejs и его coffeescript который по синтаксису похож на питон, но все же Nodejs это серверная платформа (бекенд) и не хочется распыляться поддержку еще одной платформы для одного веб-проекта (обновление модулей и т.д.).
Потом я встретил проект PyJamas, который является транслятором кода Python в код Javascript. Здорово! почти то, что нужно! но нужно встраивать автоматизацию генерации кода на javascript и следить за ссылками на готовые файлы. Но похоже скорость ответа страницы будет зависеть от того как быстро переведется весь код питона для фронтенда в код Javascript.
Но самое простое решение это использовать проект Brython . Фактически это транслятор кода питон в javascript написанный на самом javascript-е и выполняется на стороне клиента. Отрицательной стороной является на мой взгляд - нагрузка клиента (браузера), т.к. появляется дополнительные процессы для трансляции кода.
Вот пример как можно просто встроить питон в веб страничку:
на сайта проекта предлагают встраивать так:
В своем Django проекте я использовал локальное подключение:
<head><script src="/brython.js"></script> </head> <body onload="brython()"> <script type="text/python"> def echo(): alert(doc["zone"].value) </script>
<script type="text/javascript" src="{{ STATIC_URL }}brython/brython.js"></script>
<script type="text/python" src="{{ STATIC_URL }}brython/src/test.py"></script>
<script type="text/javascript">
function start_py(){
brython();
process();
}
</script>
Здесь brython/src/test.py - файл с исходниками на питоне для фронтенда,
start_py() - функция привязанные к какому либо событию на страничке.
Во всех функциях, где будет использоваться питон обязательно сначала нужно использовать функцию brython();
Далее можно вызывать функции питона или прямо писать на питоне, только код нужно обернуть в <script type="text/python">.
Вот так!
Мне кажется это весьма удобно.
Комментариев нет:
Отправить комментарий