LTK — это небольшой набор инструментов для написания веб-интерфейсов на PyScript. Объяснения PyScript и LTK см. на YouTube.
Примеры см.:
LTK реализован как декларативная библиотека Python и использует jQuery
для операций DOM.
Установите LTK из pypi:
python3 -m pip install pyscript-ltk
import ltk
ltk . Text ( "Hello World" ). appendTo ( ltk . body )
Чтобы начать работу с LTK, мы рекомендуем вам опробовать его на pyscript.com:
Новые типы виджетов создаются путем наследования ltk.Widget
:
class HBox ( Widget ):
classes = [ "ltk-hbox" ]
По умолчанию виджеты создаются как элементы DOM div
. Вы можете выбрать другой тег:
class Preformatted ( Widget ):
classes = [ "ltk-pre" ]
tag = "pre"
Для создания пользовательского интерфейса элементы конструируются декларативно:
ltk . Table (
ltk . TableRow (
ltk . TableHeader ( "header1" )
ltk . TableHeader ( "header2" )
),
[
ltk . TableRow (
ltk . TableData ( value1 ),
ltk . TableData ( value2 ),
)
for value1 , value2 in data
],
)
Виджеты добавляются к другим с помощью вызовов jQuery
append
и appendTo
:
ltk . body . append (
ltk . Table (...). element
)
container = ltk . VBox (...)
ltk . H1 ( "This is a header" ). appendTo ( container )
Когда создается виджет LTK, к нему прикрепляется соответствующий элемент jQuery в конструкторе ltk.Widget.__init__
. Он использует значение tag
, определенное объявляющим классом, а созданный элемент называется element
. Поскольку вызов append
— это функция JavaScript, реализованная с помощью jQuery, мы не передаем виджет LTK напрямую, а передаем его element
для добавления в DOM.
Виджеты можно стилизовать, используя три разных подхода:
css
jQuery
: ltk . Text ( "Error: Flux capacitor low!" )
. css ( "background-color" , "red" )
. css ( "color" , "white" )
. css ( "padding" , 8 )
dict
чтобы упростить обмен стилями: error = {
"background-color" : "red" ,
"color" : "white" ,
"padding" : 8 ,
}
ltk . Text ( "Error: Flux capacitor low!" , error )
jQuery
addClass
: ltk . Text ( "Some text" ). addClass (" my - special - text )
Внешняя таблица стилей должна иметь следующие правила:
. ltk-text {
font-family : Arial;
}
. my-special-text {
font-family : Courier;
background-color : red;
color : white;
padding : 8 px ;
}
Внешние таблицы стилей можно включить в исходный index.html
или внедрить во время выполнения из Python, используя:
ltk . inject_style ( "https://example.org/awesome_styles.css" )
Обработчики событий подключаются с помощью механизмов jQuery
.
def buy ( event ):
purchase (...)
ltk . Card ( "Buy Now" ). on ( "click" , ltk . proxy ( buy ))
Вы также можете использовать более декларативный декоратор:
@ ltk . callback
def buy ( event ):
purchase (...)
ltk . Card ( "Buy Now" ). on ( "click" , buy )
Посмотрите кухонную мойку LTK или изучите папку examples
.
На LTK распространяется лицензия Apache:
Лицензия Apache — это разрешительная лицензия на программное обеспечение с открытым исходным кодом.
Оно позволяет пользователям свободно использовать, модифицировать и распространять программное обеспечение (в том числе в коммерческих целях).
Модифицированные версии могут распространяться без необходимости выпуска исходного кода. Хотя изменения исходного кода должны быть задокументированы.
Лицензия требует модифицированных версий, чтобы сохранить лицензию Apache и уведомление об авторских правах.
Программное обеспечение предоставляется авторами «как есть» без каких-либо гарантий.
Участники не предоставляют пользователям патентные права, но участники не могут отозвать выдачу патентов за предыдущие вклады.
Лицензия не требует, чтобы производные работы использовали лицензию Apache. Хотя это поощряется для последовательности.
Если вы никогда не запускали на своем компьютере setuptools, шпагат и т. д., сделайте следующее:
python3 -m pip install --user --upgrade setuptools wheel twine build
Чтобы выполнить сборку, сначала увеличьте версию в pyproject.toml
:
[ project ]
name = "pyscript-ltk"
version = "0.1.22"
Затем соберите пакет в дистрибутив с исходным кодом и колесо Python:
python3 -m build
Затем проверьте, работает ли сборка для pypi:
twine check dist/*
Затем загрузите в тестовую среду pypi:
twine upload --repository pypitest dist/*
Наконец, если тестовая загрузка pypi работает нормально, запустите:
twine upload dist/*
Если вы получите сообщение о том, что определенная версия уже существует, проверьте содержимое папки dist
.