Pyjs

Pyjs
Originalförfattare James Tauber, Google
Utvecklare Luke Leighton, Anthony C Risinger, Kees Bos
Initial release mars 2007 ; 16 år sedan ( 2007-03 )
Stabil frisättning
Edit this on Wikidata 0.8.1a / 9 maj 2012 ; 10 år sedan ( 9 maj 2012 )
Förvar
Skrivet i Python , JavaScript
Operativ system Windows , OS X , Linux
Tillgänglig i Pytonorm
Typ Ajax ramverk , verktygslåda för skrivbord och webbwidget , kompilator , widgetuppsättning
Licens Apache-licens 2.0
Hemsida pyjs .org

Pyjs (tidigare Pyjamas före maj 2012), är ett rikt ramverk för webbapplikationer för att utveckla webb- och skrivbordsapplikationer på klientsidan i Python . De resulterande programmen kan köras i en webbläsare eller som fristående skrivbordsapplikationer .

Den innehåller en fristående Python -till- JavaScript- kompilator, ett Ajax-ramverk och widget-verktygssats , och genom att använda dessa komponenter kan utvecklare skriva omfattande applikationer, för att köras i alla större webbläsare, utan att skriva något JavaScript. Pyjs är en port av Google Web Toolkit (GWT) från Java till Python .

Utveckling

Med pyjs kan utvecklare skriva webbapplikationer i Python istället för JavaScript . Applikationen är kompilerad till JavaScript. Dessutom ingår ett Ajax-bibliotek och widgetuppsättning som ger tillgång till Document Object Model (DOM) för moderna JavaScript-kompatibla webbläsare. Ajax-biblioteket och widgetuppsättningsbiblioteket är en hybridblandning av Python och JavaScript. Precis som med Google Web Toolkit är pyjs inte dess bibliotek, och det är inte heller bara ett Ajax-ramverk. Ajax ramverk är strikt begränsade till att tillhandahålla förberedd specifik funktionalitet, skriven nästan uteslutande i skräddarsydd JavaScript. Både GWT och pyjs, som är JavaScript-kompilatorer, tillåter utvecklaren att arbeta på det språk som de är bekanta med (Java eller Python, respektive), för att skriva sina egna anpassade widgets, antingen helt från början eller baserat på de befintliga tillgängliga widgetarna, men ändå fortfarande rikta in sig på hela utbudet av moderna webbläsare. Så långt ifrån att presentera webbutvecklare med ett fullgjort Ajax-ramverk, ger pyjs dig friheten att utveckla din egen.

Design

pyjs-kompilatorn är skriven i programmeringsspråket Python och använder den för att kompilera indata till JavaScript, genom att gå igenom det abstrakta syntaxträdet för programmet som kompileras. Även om kompilatorn är fristående, är den primära användningen av pyjs för webbutveckling, så det finns ytterligare infrastruktur för att bygga webbapplikationer.

DOM.py-modellbiblioteket är ett abstraktionslager - ett tunt lager av Python ovanpå JavaScript-kodsnuttar - vars användning ger tillgång till den fullständiga dokumentobjektmodellen för målwebbläsarplattformen. Som med alla kompilatorer behandlas JavaScript-snuttarna som inline assembler .

Ovanpå modellbiblioteket DOM.py finns dessutom ett extra abstraktionslager, ui.py, som tillhandahåller det mest användbara lagret för webbutvecklare: en komplett uppsättning widgets som utvecklare av skrivbordsapplikationer kommer att vara bekanta med. För närvarande är listan över tillgängliga widgets en blandning av den kompletta uppsättningen widgets som var tillgängliga i Google Web Toolkit 1.2, tillsammans med några fler som har vidareporterats från GWT 1.5.

Komponenter

De viktigaste Pyjs-komponenterna inkluderar:

pyjs Python-till-JavaScript-kompilator
Översätter programmeringsspråket Python till JavaScript.
Python inbyggt och standardemuleringsbibliotek
JavaScript-implementeringar av de vanligast använda modulerna, inbyggda och klasserna i Pythons standard runtime-bibliotek (såsom strängar, listor, ordböcker, tupler, uppsättningar, getattr, karta, filter, intervall, etc.; grundläggande undantagshantering , en grundläggande datetime och en grundläggande matematikmodul).
pyjs DOM-bibliotek
Moduler för att manipulera webbläsarens DOM .
pyjs Web UI-modul
En modul för att skapa widgets som om webbläsaren vore en widgetmotor för skrivbordet .
pyjs Desktop-portar
Stöd för att köra pyjs-appar som ren Python, under MSHTML (Trident), Gecko ( XULRunner ) eller WebKit . Pyjs Desktop är konceptuellt nära GWT "Hosted"-läge, förutom att applikationerna kan distribueras live, under pyjs Desktop, snarare än att endast användas som ett felsökningsverktyg.

pyjs skrivbord

Widgetuppsättningsbiblioteket som följer med pyjs är så likt PyQt och PyGTK att en port av pyjs skapades för att köra pyjs-applikationer på skrivbordet, kallad pyjs Desktop (tidigare PyjamasDesktop före maj 2012 och ursprungligen värd separat före version 0.6). Projektet använder Webkit , XULRunner eller MSHTML som den underliggande tekniken, och det är genom dessa webbläsarmotorer som pyjs manipulerar DOM-modellen för applikationen. Tillsammans tillåter pyjs och pyjs Desktop att skriva applikationer för flera plattformar, över skrivbord, över webbläsare och widgetprogram som körs på webben och på skrivbordet.

externa länkar