web2py
A web2py nyílt forráskódú webalkalmazás-keretrendszer. Fő célja a gyors, skálázható, biztonságos és hordozható, adatbázis-vezérelt webalapú alkalmazások agilis fejlesztésének támogatása. Python programnyelven írták és Pythonban programozható. Mivel eredetileg oktatóeszköznek tervezték – könnyű használhatóságra és telepíthetőségre törekedve –, semmiféle projektszintű beállítófájlt nem használ.
web2py | |
Fejlesztő | a web2py fejlesztői |
Legfrissebb stabil kiadás | 1.91.6 (2011. január 3.) |
Programozási nyelv | Python |
Operációs rendszer | keresztplatformos |
Kategória | webes keretrendszer |
Licenc | GNU Lesser General Public License version 3 (LGPLv3) |
A web2py weboldala |
Létrehozását a Ruby on Rails (RoR) keretrendszer inspirálta. A RoR-hoz hasonlóan a gyors fejlesztésre összpontosít, a convention over configuration megközelítést és a Modell-nézet-vezérlő (MVC) építészeti mintát követi. Viszont a Pythonon alapul és átfogó, webes adminisztrációs kezelőfelületet nyújt, programkönyvtárakat kínál különféle adatátviteli protokollok kezelésére, és a Google App Engine-en (GAE) is képes futni.
A Django keretrendszer szintén inspirálta fejlesztőit. A Djangóhoz hasonlóan képes webes űrlapokat generálni adatbázis-táblák kezeléséhez, és kiterjedt adatellenőrzési eszközkészletet kínál.
A Pythonnak köszönhetően a web2py kódja jóval tömörebb a Java-alapú webes keretrendszerekéhez képest, és a szintaxisa sokkal letisztultabb a PHP-alapú keretrendszerekénél. Ez egyszerűbbé teszi az alkalmazások fejlesztését, javítja olvashatóságukat és megkönnyíti karbantartásukat.
Áttekintés
szerkesztésA web2py teljeskörű keretrendszer abban az értelemben, hogy kész építőelemeket kínál minden gyakori feladathoz. Például:
- webes sütik, munkamenetek (sessionök), HTTP lekérdezések és HTTP válaszok kezeléséhez;
- sokféle adatátviteli protokollt ismer[1] – HTML/XML, REST, ATOM és RSS, RTF és CSV, JSON, JSON-RPC és XML-RPC, AMF-RPC (Flash/Flex) –, és támogatja a SOAP-t;[2]
- CRUD API-t kínál;
- többféle autentikációs mechanizmust és szerepalapú hozzáférés-vezérlést nyújt;
- adatbázis-absztrakciós rétege dinamikusan generál SQL lekérdezéseket és többféle adatbázis-szerverrel képes együttműködni;
- beállítható RAM-, lemez- és memcached-alapú gyorsítótárazást kínál a skálázhatóság elősegítésére;
- teljeskörű nemzetköziesítésre ad lehetőséget;
- magában foglalja a jQueryt az Ajaxhoz és a kezelőfelülettel kapcsolatos más műveletekhez;
- automatikusan naplózza a futásidejű hibákat, azok körülményeivel együtt.
A web2py segít a fejlesztőnek a szoftvermérnöki gyakorlatban bevált módszerek követésében, például:
- a Model-View-Controller (MVC) tervezési minta alkalmazásában;
- a webes űrlapok körbefordításában;
- a szerveroldali munkamenetek alkalmazásában;
- a fájlok feltöltésének biztonságos kezelésében.
A web2py biztonságos alap mechanizmusokat nyújt a biztonságos alkalmazások fejlesztéséhez. Ez megelőzi a leggyakoribb sérülékenységek előfordulását.
Más webes keretrendszerektől eltérően eredetileg oktatási segédeszköznek készítették a DePaul Egyetemen. Ennek köszönhetően nagyon könnyen megtanulható, könnyen használatba vehető (nem kell telepíteni), és teljeskörű webes fejlesztőkörnyezetet kínál.
A WSGI protokollt alapul véve fejlesztették ki – ez a legújabb adatátviteli protokoll a Python programok számára a webes kiszolgálóprogram és az alkalmazások közötti kapcsolattartáshoz. Kezelőelemeket nyújt a CGI és a FastCGI protokollhoz, és tartalmazza a CherryPy többfonalas működésű, SSL-képes WSGI-szerverét is.
Az agilis szoftverfejlesztési gyakorlatnak megfelelően sűrűn – néhány hetente – jelennek meg az új verziói, és könnyű frissíteni. Ám nagyon ritkán kell naprakészre hozni biztonsági rés vagy megbízhatósági hiányosság miatt. Fejlesztői megtartották az új verziók visszamenőleges kompatibilitását a 2007-ben megjelent, 1.0-s verziója óta, és megfogadták, hogy a jövőben sem szakítják meg azt.
Néhány ritka sajátosság
szerkesztésWeb-alapú integrált fejlesztőkörnyezet (IDE)
szerkesztésMinden fejlesztési, hibakeresési, tesztelési, karbantartási és távoli adatbázis-adminisztrálási feladat elvégezhető külső programok nélkül – webes felületen, amely maga is egy web2py alkalmazás.
Ebben az IDE-ben elvégezhető a nemzetköziesítés (új nyelv hozzáadása és a fordítások elkészítése). Mindegyik alkalmazás automatikusan kigenerált adminisztrációs felülettel bír, a Djangóhoz hasonlóan. Webes tesztelési lehetőségeket és webes shellt is kínál az IDE.
Nem muszáj használni – parancssorból és más IDE-kben is fejleszthetők az alkalmazások. Például a Wing IDE grafikus hibakeresőt kínál a web2py alkalmazásokhoz,[3] melyeket eközben a böngészőből lehet kezelni, változók értékét lehet vizsgálni és módosítani, meghívhatunk függvényeket stb.
Rugalmas nézetek
szerkesztésA közismert Hello World program kódja a web2py-jal elkészítve legegyszerűbb esetben (egyszerű weblap[4] sablon nélkül) így néz ki:
def hello():
return 'Hello World'
Python alapú sablonok: a web2py része egy gyors, tisztán Pythonban megírt sablonnyelv:
- behúzási követelmények nélkül;
- szerveroldali Dokumentum Objektummodellel (DOM).
Joomlás sablonok: Joomla! 1.x-hez készített sablonok átalakíthatók web2py alá.[5]
Generikus nézetek: ha nem készítünk nézetet egy vezérlőhöz, a web2py automatikusan generikus nézetet nyújt a vezérlő által visszaadott változók megjelenítéséhez. Így elkészíthető az alkalmazás logikai váza egyetlen sor HTML-kód írása nélkül, és működő prototípust kapunk. Az előbbi példa generikus változata, az alapbeállítás szerinti sablonnal megjelenítve:
def hello():
return dict(greeting='Hello World')
Erős biztonság
szerkesztésA web2py egyik erőssége a biztonság. Eddig még sosem derült ki vele kapcsolatban biztonsági probléma. Az OWASP szerint leggyakoribb 10 biztonsági probléma listája, és a web2py-ba épített megoldások ezek ellen:[6]
- Cross-site scripting (XSS): a web2py alapbeállításban minden változót helyettesítő karakterekkel jelenít meg a nézetekben, ezáltal megelőzi az XSS-t.
- Injection Flaws: a web2py adatbázis-absztrakciós rétege lehetetlenné teszi az SQL beszúrást.
- Malicious File Execution: a web2py csak a felfedett vezérlők végrehajtását engedi meg, ezáltal megakadályozza a fájlok rosszindulatú végrehajtását.
- Insecure Direct Object Reference: a web2py nem fed fel semmiféle belső objektumot, továbbá ellenőrzi minden URL érvényességét, ezáltal megelőzi a mappa-áthidaló támadásokat.
- Cross-site request forgery (CSRF): a web2py csak munkamenethez kötött sütiket használ és megelőzi a webes űrlapok ismételt elküldését, így kivédi a CSRF-et.
- Information Leakage and Improper Error Handling: eddig (2009. október 5-éig bezárólag) a web2py az egyetlen keretrendszer, amely beépített jegykezelő rendszert kínál.
- Broken Authentication and Session Management: a web2py-ban beépített mechanizmus kezeli a munkameneteket, és sütiben tárolja a munkamenet-azonosítót.
- Insecure Cryptographic Storage: a web2py alapbeállításban az MD5 algoritmussal hasítja a jelszavakat. Más algoritmusokat, például a HMAC-t is felkínálja ehhez.
- Insecure Communications: a web2py az Apache webszerverrel és az ahhoz fejlesztett mod ssl modullal használva erős titkosítást nyújt a kommunikációhoz.
- Failure to Restrict URL Access: a web2py az URL-eket függvényhívásokhoz rendeli hozzá. Mechanizmust nyújt annak meghatározásához, mely függvények publikusak, és melyik követel azonosítást, illetve jogosultság-ellenőrzést.
Jegyrendszer
szerkesztésMindegyik web2py alkalmazás része a jegykezelő rendszer:
- A futásidejű hibák naplózásra kerülnek, és az érintett felhasználó jegyet kap róluk. Ez lehetővé teszi a hibák nyomon követését.
- A hibák leírását és a hozzájuk tartozó forráskódot csak az adminisztrátor érheti el, aki a hibák dátuma és a felhasználó IP-címe alapján keresheti vissza és vizsgálhatja a hibákat. Nem fordulhat elő, hogy egy hiba következtében forráskód jelenik meg a felhasználó előtt.
Hordozható cron
szerkesztésEz egy mechanizmus az ismétlődő taszkok létrehozásához és háttérben való futtatásához. Megkeresi az alkalmazáshoz tartozó crontab fájlt, amelyet a szabályos crontab formátumban kell megírni. Háromféle üzemmód választható:
- Softcron: a cron rutinok egy weblap tartalmának elküldése után kerülnek végrehajtásra, ezért bizonytalan a végrehajtásuk időpontja. Privilégium nélküli Apache CGI/WSGI telepítésekben használható.
- Hardcron: a cron programfonal a web2py indulásakor indul el. Windowsokon és CherryPy-alapú önálló web2py telepítésekhez használható.
- Extcron: a cron függvények parancssorból kerülnek meghívásra, általában az operációs rendszer crontabjából. Unix/Linux rendszereken és olyan helyeken használatos, ahol a cron triggereket akkor is végre kell hajtani, ha a web2py éppen nem fut. CGI/WSGI telepítésekhez is jó, ha hozzáférhető a rendszer crontabja.
Forráskód védelme
szerkesztésA web2py-jal lefordíthatók a webes alkalmazások, és így bájtkódra fordítva tehetők közzé, forráskódjuk nélkül. Ez segít, de nem garantálja a forráskód védelmét, ugyanis disassemblereket és decompilereket is készítettek már a Python bájtkódokhoz:
- A Python alapkönyvtárának Dis modulja[7] lehetővé teszi a bájtkódokból az elemi utasítások visszafejtését, de nem nyerhető vissza vele a Python forráskód.
- A nyílt forrású Decompyle Python disassembler és decompiler visszaalakítja a Python bájtkódot azzal ekvivalens Python forráskóddá. A Python 1.5-ös és 2.3-as közötti verzióival lefordított bájtkódokat (.pyc és .pyo) képes feldolgozni, az említett verziókat is beleértve. A 2.3-asnál újabb verziókat nem támogatja, és nehézkes a használata.
- A kereskedelmi decompyle szolgáltatás t a Decompyle-ból fejlesztették ki. Az 1.5-ös és 2.6-os verzió közötti Python bájtkódokat képes visszafordítani, kisebb korlátozásokkal.
- A nyílt forrású UnPyc eszköz képes a Python *.pyc and *.pyo fájlok elemi utasításokra való szétszedésére, elemzésére és visszafordítására, váltakozó sikerrel. A Python v2.5-ös és v2.6-os verzióit támogatja.
A Python ugyanakkor elég könnyen kiegészíthető C-ben és C++-ban írt modulokkal,[8][9][10] a programok sebességének növelése vagy az értékes kódrészletek szellemi tulajdonjogának jobb védelme érdekében.
Telepítés, frissítés
szerkesztésA web2py-t Pythonban írták, de nincs rá szükség a futtatásához. Elég letölteni a honlapjáról,[11] kibontani a ZIP csomagot, és elindítani – bármelyik operációs rendszeren. A web2py csomag része minden, ami szükséges a fejlesztéshez, többek között egy webkiszolgáló és egy adatbázis-kezelő program. Nincs szükség telepítési eljárásra, beállításokra, és rendszerhéjban kiadott parancsokra.
Első lépések
szerkesztésWindowson
szerkesztésLetöltés után ki kell bontani a ZIP csomagot és el kell indítani a web2py.exe programot. Jelszót kell választani, az adminisztrációs felület linkjére kattintani, és megadni ugyanazt a jelszót.
Forrásból is futtatható:
python web2py.py
Windows szolgáltatásként való futtatásához ezt az útmutatót kell követni.[12]
Mac OS X-en
szerkesztésLetöltés után ki kell bontani a ZIP csomagot, és rákattintani a web2py.app-ra. Jelszót kell választani, rákattintani az adminisztrációs felület linkjére, és megadni ugyanazt a jelszót.
Forrásból is futtatható az alábbi paranccsal:
python web2py.py
Unixokon, köztük Linuxon és BSD-ken
szerkesztésForrásból futtatható:
python2.5 web2py.py
Jelszót kell választani, rákattintani az adminisztrációs felület linkjére, és megadni ugyanazt a jelszót.
Google App Engine-en
szerkesztésA web2py motorját forráskódú formájában kell telepíteni.[13] Tehát a GAE a web2py-t futtatja majd, amely viszont az alatta lévő web2py alkalmazásokat futtatja.
Részletes leírás a web2py GAE-re való telepítéséről,[14] illetve a web2py-jal fejlesztett alkalmazások futtatásáról GAE-n.[15]
Teljesítmény-problémák kis forgalmú webhelyeken
szerkesztésA GAE a .py fájlokat lefordítja bájtkódra, és gyorsítótárazza azokat 60 másodpercre. Kis forgalmú webhelyeken jó trükk a teljesítmény fokozására egy cron job,[16] amely 60 másodpercenként megpingeli a web2py valamelyik vezérlőfájlját, így frissen tartja annak bájtkódját a GAE gyorsítótárában.[17]
Figyelmeztetések
szerkesztésTelepítése után a web2py mindegyik elindításakor jelszót kell választani. Ez a továbbiakban az adminisztrátori jelszavunk. Ha nem választunk jelszót, az adminisztrációs felület letiltódik. Az admin felület (/admin/default/index) csak a localhoston (azaz saját gépen), illetve távolról SSH-alagúton keresztül érhető el, és mindig jelszót kér.
Operációs rendszerek, virtuális gépek, hardverek
szerkesztésA web2py a Windowsokon, Windows CE-s telefonokon, Mac rendszereken, Unixokon és Linuxokon, Google App Engine-en, Amazon EC2-n, és szinte bármelyik web-hostingon futtatható a Python 2.4[18]/2.5/2.6/2.7-es verziói révén.
A bináris (lefordított) kiadásai a Python 2.5-ös verzióját tartalmazzák, de a forráskódban kiadott változatai a 2.4 és 2.7 közötti összes Python-verzión futtathatók.
A web2py az v1.64.0-s verziója óta módosítás nélkül is fut Java platformon a Jython 2.5-ös verziója révén, bármiféle ismert korlátozás nélkül.
A web2py kódja a .NET Frameworkön is fut, IronPythonnal, a következő korlátozásokkal:
- nincs csv modul (emiatt adatbázis-kezelés sincs);
- nincsenek külső adatbázis-meghajtó programok (még SQLite sem, tehát semmiféle adatbázis nem érhető el);
- nincs beépített webszerver (hacsak nem távolítjuk el belőle a signals és a logging modult).
Ezeknek az az oka, hogy az IronPythonban még nincs csv, sqlite, signals és logging modul.
A web2py binárisai USB flash meghajtókról is futtathatók, függőségek nélkül, úgy, mint a Portable Python.
Webszerver-elrendezések
szerkesztésA beépített CherryPy szerverrel HTTP-n és HTTPS-en[19] keresztül érkező lekérdezéseket is kiszolgálhatunk. A web2py együttműködik az Apache-val,[20] a Lighttpd-vel,[21] a Cherokee-val,[22] az Nginxszel és szinte bármelyik webszerverrel a CGI, a FastCGI, a WSGI, a mod proxy,[23][24][25] és/vagy a mod python révén.
A web2py frissítése
szerkesztésA web2py kézikönyvében olvasható útmutató a frissítésről.
Adatbázis-kezelés
szerkesztésA web2py adatbázis-absztrakciós rétege (Data access layer – DAL) dinamikusan és észrevétlenül generálja ki az SQL lekérdezéseket, és sokféle adatbázis-kezelőn fut. Nem szükséges adatbázis-specifikus SQL lekérdezéseket használnunk. Viszont kiadhatunk az adott adatbázis-kezelőhöz tartozó explicit SQL utasításokat.
Az SQLite-ot beépítik az újabb Pythonokba, ezáltal a web2py-ba is, tehát ez az alap adatbázis. Egy kapcsolódási string lecserélésével átválthatunk Firebirdre, IBM DB2-re, Informixra, Ingres re, Microsoft SQL Serverre, MySQL-re, Oracle adatbázis-kezelőre, PostgreSQL-re, illetve Google App Engine-re (GAE), néhány korlátozással. Egyedi vonások:
- PostgreSQL-lel elosztott tranzakciók is végezhetők, mert API-t kínál a kétfázisú commitokhoz.
- A GAE nem nyújt relációs adatbázist. A web2py kézikönyvének 305. oldalán részletes útmutató olvasható a GAE korlátozásairól.
Ez az adatbázis-absztrakciós réteg gyors, a sebessége legalábbis összevethető az SQLAlchemy és a Storm sebességével.[26]
A web2py egyszerre több adatbázishoz is képes kapcsolódni. Automatikus tranzakciókat hajt végre. Szükség esetén még adatbázis-táblákat is létrehoz, illetve módosítja azokat.
Ez DAL, nem pedig ORM. Az ORM-ek az adatbázis-táblákat osztályokra képezik le, a rekordokat pedig ezeknek az osztályoknak a példányaira. Ez a DAL viszont egy osztály példányaira képezi le az adatbázis-táblákat, a rekordokat pedig egy másik osztály példányaira. A szintaxisa nagyon hasonlít az ORM-ekére, de ez a DAL gyorsabb, és szinte bármilyen SQL kifejezést képes DAL kifejezésekre leképezni. A web2py nélkül is használható.[27]
Automatikus adatbázis-migrálás
szerkesztésA web2py támogatja az adatbázisok migrálását. Elég módosítani egy tábla definícióját, és annak megfelelően ALTER utasítással módosítja a táblát. Például egy mező típusát logikairól (boolean) sztringre módosítva az adatbázist ennek megfelelően módosítja, és a mezők értékeit logikaiból sztringgé alakulnak.
A web2py alatt a migrációk automatikusak, de bármelyik táblára letilthatók. A web2py minden migrációt és migrációs próbálkozást naplóz egy fájlba, így láthatjuk az általa elvégzett adatbázis-módosításokat.
Korlátozások:
- Az SQLite elég gyengén érti a migrációs lépéseket. Különösen nem képes a táblák módosítására, illetve a mezők típusának módosítására. Mindössze az új értékeket tárolja el az új típusnak megfelelően.
- GAE-n ismeretlen a táblák módosításának fogalma, ezért csak táblaoszlopok hozzáadására és törlésére van lehetőség (nem kerülnek törlésre, csak figyelmen kívül lesznek hagyva). Az oszlopok egyes attribútumait – például hosszát – módosíthatjuk, mert amúgy is figyelmen kívül vannak hagyva. Egyes migrációk nem működnek GAE-n.
Alkalmazások
szerkesztésKulcsrakész alkalmazások forráskóddal együtt
szerkesztésSok ingyenes és kulcsrakész web2py alkalmazást találhatunk teljes forráskódjukkal együtt, testreszabásra alkalmas formában, különféle licencfeltételek mellett.
Többségük ebben a listában található a web2py honlapján. Néhány közülük:
- Ajax SpreadSheet: beágyazható táblázatkezelő.
- Chat: ajaxos web chat, több felhasználót és szobát is támogat.
- Cookbook: egyszerű alkalmazás, a felhasználók recepteket küldhetnek be. Az oktatóanyaga lépésről lépésre bemutatja az alkalmazás elkészítését.
- Blogok:
- KennethDamianBlog: könnyen testreszabható blog.
- WordPressClone: a Wordpress-szel azonos megjelenésű blog.
- GrooverWiki: egy wiki.
- KPAX CMS: egy teljes tartalomkezelő rendszer (CMS). Weblapokat, wikiket, blogokat, chateket, híreket, felhasználói csoportokat, engedélyeket, RSS adagolókat kezelhetünk vele.
- Podcasts: ezzel a programmal fogadhatunk, nézhetünk és hallgathatunk különböző forrásból származó podcastokat.
- Reddish: a Google App Engine-en futtatható Reddit-klón.
- QrOne CSS Designer: CSS alapú laptervek készítésére használható alkalmazás.
- DamianLogAnalizer: naplóelemző alkalmazás, grafikonkészítéssel.
- IsUp: az általunk megadott URL-eket 30 másodpercenként megvizsgálja, elérhetők-e. Adatbázisban tartja nyilván, melyik URL mikor nem volt elérhető.
Két alkalmazást máshonnan tölthetünk le:
- a pyForum egy érett fórumrendszer;
- a T3[halott link] wiki bárhol futtatható (a Google App Engine-en is), az adminisztrátora adatbázis-táblákat is definiálhat benne, és a lapokba Python kódot is beágyazhat.
Webhelyek és webes alkalmazások, amelyek a web2py-on alapulnak
szerkesztésKét lista arról, hol használják:
Licencek
szerkesztésA web2py kódját a v1.91.1 óta GNU Lesser General Public License version 3 (LGPLv3) alatt bocsátják ki. Régebbi, jelenleg is elérhető verziói GNU GPL v2.0 licenc alattiak.
Ez a licenc nem terjed ki a web2py-jal együtt kibocsátott, de máshonnan származó programkönyvtárakra (azok mindegyikére MIT vagy BSD típusú licenc érvényes), és nem vonatkozik a web2py-jal kifejlesztett alkalmazásokra sem.
A web2py hivatalos bináris (lefordított) kiadásai freeware-ek.[28] Szabadon felhasználhatók és újra kibocsáthatók, de kizárólag díjmentesen. Másféle bináris kiadás nem bocsátható ki a web2py-ból.
A web2py-jal elkészített alkalmazások bármilyen licenc alatt kibocsáthatók, mindaddig, amíg nem tartalmaznak forráskódot a web2py-ból. Különösen ilyenek a bájtkódra lefordítva közzétett, zárt forrású szoftverek. A web2py adminisztrációs felületén egyetlen gombnyomással elindítható a bájtkódra fordítás.
Nyugodtan közzétehető a web2py is (forrásban vagy lefordítva) az alkalmazásokkal, mindaddig, amíg azok licence egyértelműen jelzi, hol ér véget az adott alkalmazás és hol kezdődik a web2py.
Tilos:
- azt állítani, hogy a web2py-jal elkészített alkalmazás fejlesztője készítette a web2py-t;
- magának a web2py-nak olyan származékát előállítani, amely sérti GNU GPL v2.0-t;
- közzétenni a web2py olyan bináris kiadását, amelyet nem Massimo DiPierro adott ki hivatalosan.
A web2py szerzői joga Massimo DiPierroé. A web2py védjegy Massimo DiPierro tulajdona.
Kiadványok
szerkesztés- Online dokumentáció a web2py honlapján, benne a web2py könyv teljes, naprakész anyaga, "szakácskönyv" (fél)készen alkalmazható kódrészletekkel, videók, interaktív példák, interaktív API kézikönyvvel, epydocs-szal (a teljes programkönyvtár kézikönyve), FAQ, puska, online eszközök stb.
- A Web2py wiki[halott link]jét a web2py-jal készítették el.
- A web2py-t bemutató diasorok.
Videók
szerkesztés- Web2py Enterprise Web Framework.
- Web2py "Shootout" Tutorial.
- Web2py on the Google App Engine.
- More video tutorials on Vimeo – lista a Vimeón elérhető web2py videókról.
Cikkek, könyvek
szerkesztés- Web programming with web2py – cikk a Python Magazine 2008 júniusi számában.
- A web2py hivatalos kézikönyvét Massimo DiPierro írta:
- Első kiadás: web2py Manual. John Wiley & Sons Kiadó, 2008. szeptember 16., 256 oldal, ISBN 978-0470432327.
- Második kiadás: John Wiley & Sons Kiadó, 2009. augusztus 26., 341 oldal, ISBN 0470592354. Online Archiválva 2009. szeptember 5-i dátummal a Wayback Machine-ben is olvasható. A hibajegyzéke.
- Harmadik kiadás: lulu.com Archiválva 2010. október 1-i dátummal a Wayback Machine-ben, 2010. szeptember 25., 537 oldal, ISBN 0557604141.
Háttér
szerkesztésTámogatás
szerkesztésKözösségi támogatást érhetünk el:
- a web2py levelezőlistájá hoz csatlakozva a Google Groups-on;
- a web2py tudásbázisá t használva.
2011. január 15-én világszerte 14 cég kínált támogatási szolgáltatást web2py-hoz.[29]
Fejlesztők
szerkesztésVezető fejlesztő (kezdettől fogva): Massimo DiPierro (a chicagói DePaul Egyetem számítástudományi docense).
2011. január 15-én a web2py honlapján 74 „fő közreműködőt” soroltak fel.[30]
A web2py-ba foglalt más szoftverek
szerkesztés- Python-alapú összetevők:
- a többfonalas működésű, SSL-képes és folyamképes Rocket WSGI-szerver – a v1.77.1 előtti, ma is elérhető verzióiba a CherryPy hasonló képességű szerverét építették be
- fcgi.py: egy FastCGI/WSGI gateway
- simplejson: egy egyszerű, gyors, teljes, kiforrott és kibővíthető JSON kódoló és dekódoló
- markdown2: egy Markdown feldolgozó – tehát ebben a könnyedén írható és jól olvasható, egyszerű szövegformátumban is megírhatjuk a weblapok szövegét, miután a web2py röptében átalakítja azt szerkezetileg hibátlan XHTML (vagy HTML) forráskóddá
- PyRTF: egy RTF dokumentumgenerátor
- egy szintaxisszínező
- PyRSS2Gen: egy RSS adagoló
- feedparser: RSS és Atom formátumú adagolók kimenetének elemzéséhez
- JavaScript-alapú összetevők:
- jQuery: egy könnyűsúlyú JavaScript programkönyvtár
- EditArea: egy ingyenes szerkesztőprogram forráskódokhoz
- nicEdit: egy könnyűsúlyú, keresztplatformos, beágyazható tartalomszerkesztő
- Egyéb:
- SQLite: egy relációs adatbázis-kezelő
- memcached: egy általános célú, elosztott, memóriában gyorstárazó rendszer
Történet és nevek
szerkesztésA web2py első nyilvános verziójának forráskódját 2007. szeptember 27-én tette közzé Massimo DiPierro, GNU GPL v2.0 licenc alatt, Enterprise Web Framework (EWF) névvel. Kétszer kellett átkeresztelni névazonosság miatt: az EWF 1.7-et a Gluon 1.0 követte, a Gluon 1.15-öt pedig a web2py 1.16. A v1.91.1-nél LGPLv3-ra módosították a licencét.
A Web.py neve hasonló, de a két szoftvernek semmi köze egymáshoz.
Lelőhelyek, hivatkozások
szerkesztésA web2py legfrissebb fejlesztői pillanatfelvétele két kódtárházban érhető el:
- a Bazaar verziókezelő rendszerhez a Launchpaden: web2py pillanatfelvétel BZR-hez;
- a Mercurial verziókezelő rendszerhez a Google Code-on: web2py pillanatfelvétel hg-hez.
A Freshmeat, az Ohloh és a Google Trends – hiányosságaik és tökéletlenségük ellenére – értékes bepillantást nyújtanak a szoftverfejlesztési projektek hátterébe, forráskódjuk összetételébe, életerejébe és népszerűségébe:
- web2py a Freshmeaten;
- web2py az Ohlohon Archiválva 2009. január 30-i dátummal a Wayback Machine-ben;
- web2py a Google Trends-en.
Fordítás
szerkesztés- Ez a szócikk részben vagy egészben a Web2py című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Jegyzetek
szerkesztés- ↑ A web2py sokféle adatátviteli protokollt ismer a v1.63 óta
- ↑ SOAP használata web2py-jal
- ↑ A Wing IDE használata web2py-hoz
- ↑ Legegyszerűbb weblap a web2py-jal: "Hello World" példa
- ↑ sablonok átalakítása web2py alá
- ↑ Az OWASP szerint leggyakoribb 10 biztonsági probléma listája, és a web2py-ba épített megoldások ezek ellen
- ↑ Disassembler a Python bájtkódhoz
- ↑ Python modulok készítése C-ben és C++-ban. [2009. szeptember 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. szeptember 29.)
- ↑ a Cython leegyszerűsíti a C bővítőmodulok írását Pythonhoz
- ↑ a Pyrexet a Python modulok készítésének segítésére fejlesztették ki, a szintaxisa nagyon hasonlít a Pythonéhoz
- ↑ Bináris és forráskódú letöltések a web2py honlapján. [2009. április 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. szeptember 23.)
- ↑ Hogyan futtathatjuk a web2py-t Windows szolgáltatásként?
- ↑ A web2py legfrissebb forráskódja az összes platformra
- ↑ Web2py telepítése Google App Engine-re. [2009. október 26-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. október 26.)
- ↑ Web2py-jal fejlesztett alkalmazások futtatása GAE-n
- ↑ Cron jobok a Google App Engine-en
- ↑ Teljesítményfokozó trükk GAE-re telepített Python programokhoz
- ↑ Web2py futtatása Python 2.4-gyel
- ↑ A web2py-ba beépített SSL-szerver használata
- ↑ Web2py Apache-val és mod_ssllel
- ↑ Lighttpd használata FastCGI-vel
- ↑ Web2py futtatása Cherokee-val
- ↑ A mod_proxy leírása
- ↑ Web2py mod_proxyval
- ↑ Web2py mod_proxyval és mod_proxy_html-lel
- ↑ ORM benchmark
- ↑ A web2py DAL használata web2py nélkül
- ↑ A web2py hivatalos binárisai freeware-ek
- ↑ Web2py-hoz támogatási szolgáltatást nyújtó cégek
- ↑ A web2py fejlesztésében komolyabban közreműködők listája