LTK는 PyScript에서 웹 UI를 작성하기 위한 작은 툴킷입니다. PyScript와 LTK에 대한 설명은 YouTube를 참조하세요.
예를 보려면 다음을 참조하세요.
LTK는 선언적 Python 라이브러리로 구현되며 DOM 작업에 jQuery
활용합니다.
pypi에서 LTK를 설치합니다.
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" ]
기본적으로 위젯은 div
DOM 요소로 생성됩니다. 다른 태그를 선택할 수 있습니다.
class Preformatted ( Widget ):
classes = [ "ltk-pre" ]
tag = "pre"
UI를 만들기 위해 요소는 선언적으로 구성됩니다.
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
호출은 jQuery로 구현된 JavaScript 함수이므로 LTK 위젯을 직접 전달하지 않고 해당 element
전달하여 DOM에 추가합니다.
세 가지 접근 방식을 사용하여 위젯의 스타일을 지정할 수 있습니다.
jQuery
의 css
함수를 사용하여 요소 스타일로 스타일 지정: 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
함수를 사용하여 CSS 클래스와 외부 스타일시트를 사용한 스타일 지정: 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 kitchensink를 확인하거나 examples
폴더를 살펴보세요
LTK는 Apache 라이센스에 따라 보호됩니다.
Apache 라이센스는 허용적인 오픈 소스 소프트웨어 라이센스입니다.
이를 통해 사용자는 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다(상업적 목적 포함).
소스코드를 공개하지 않고도 수정된 버전을 배포할 수 있습니다. 소스 코드 변경 사항은 문서화되어야 합니다.
라이센스에는 Apache 라이센스 및 저작권 고지를 유지하기 위해 수정된 버전이 필요합니다.
소프트웨어는 보증 없이 "있는 그대로" 작성자에 의해 제공됩니다.
기여자로부터 사용자에게 특허권이 부여되지는 않지만 기여자는 이전 기여에 대한 특허 부여를 취소할 수 없습니다.
라이센스는 Apache 라이센스를 채택하기 위해 파생 저작물을 요구하지 않습니다. 일관성을 위해 권장되는 사항입니다.
컴퓨터에서 setuptools, Twine 등을 실행한 적이 없다면 다음을 수행하십시오.
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
폴더의 내용을 확인하세요.