Web2py

web2py
Tyyppi puitteet verkkosovellusten kehittämiseen
Tekijä Massimo di Pierro
Kehittäjä web2py-kehittäjät
Sisään kirjoitettu Python
Ensimmäinen painos 27. syyskuuta 2007 ( 27.9.2007 )
Laitteistoalusta cross-platform
uusin versio
Osavaltio Aktiivinen
Lisenssi GNU Lesser General Public License versio 3 (LGPLv3)
Verkkosivusto web2py.com-
postituslista

web2py  on avoimen lähdekoodin verkkosovelluskehityskehys, joka on kirjoitettu Python - ohjelmointikielellä . Web2py antaa verkkokehittäjille mahdollisuuden luoda dynaamisia verkkosivustoja Pythonilla. Web2py pyrkii vähentämään web-kehitystöitä, kuten verkkolomakkeiden kirjoittamista tyhjästä, vaikka kehittäjä voi tarvittaessa suunnitella lomakkeen alusta alkaen. [3]

Web2py suunniteltiin alun perin oppimistyökaluksi, jossa keskityttiin käytettävyyteen ja helppokäyttöisyyteen, koska siitä puuttuu projektin määritystiedostoja. Web2py-arkkitehtuuriin vaikuttivat Ruby on Rails (RoR) ja Django-kehykset . Näiden kehysten tavoin web2py on suunnattu nopeaan kehitykseen , noudattaa käytäntöjä määrityksiä vastaan ​​ja noudattaa Model-View-Controller (MVC) -suunnittelumallia .

Yleiskatsaus

Web2py on monipuolinen kehys, ja siinä on sisäänrakennetut komponentit kaikille tärkeimmille ominaisuuksille, mukaan lukien:

Web2py kannustaa parhaisiin ohjelmistosuunnittelun käytäntöihin, nimittäin:

Web2py käyttää WSGI :tä , Python-pohjaista protokollaa verkkopalvelimen ja verkkosovellusten väliseen viestintään . CGI- ja FastCGI -protokollien käsittelijät ovat myös saatavilla, ja mukana on monisäikeinen , SSL -yhteensopiva WSGI- palvelin, Rocket [7] .

Erottavat ominaisuudet

Web Integrated Development Environment (IDE)

Koko etätietokannan kehitys- , virheenkorjaus- , testaus- , tuki- ja hallintaprosessi voidaan suorittaa (haluttaessa) ilman kolmannen osapuolen työkaluja verkkokäyttöliittymän kautta, joka puolestaan ​​on web2py-sovellus. Kansainvälistäminen (kielten lisääminen ja kääntäminen) voidaan myös tehdä tästä IDE :stä . Jokaisessa sovelluksessa on automaattisesti luotu tietokannan hallintaliittymä, joka muistuttaa Djangoa . Web-IDE sisältää myös testityökalut ja verkkokonsolin .

Sovelluksia voidaan luoda sekä komentoriviltä että kirjoittaa kolmannen osapuolen IDE:illä. [8] Saatavilla muita virheenkorjausvaihtoehtoja: [9]

Klassinen Hello World web2py -ohjelma yksinkertaisimmassa muodossaan (näytetään paljas web-sivu [15] ilman mallia) näyttää tältä:

def hello (): palauta "Hello World"

Web2py sisältää puhtaan Python-pohjaisen mallipohjakielen , joka ei vaadi sisennyksen käyttöä ja palvelinpuolen asiakirjaobjektimallia ( DOM ).

Mallimoottoria voidaan käyttää myös erikseen web2py:stä. [16] Joomla 1.x -mallit voidaan muuntaa web2py-malleiksi. [17]

Web2py toimittaa myös kaksi merkintäkirjastoa: markdown2- suodatin Arkistoitu 19. maaliskuuta 2014 Wayback Machinessa tekstistä HTML:ksi, joka muuntaa Markdown -merkinnät HTML :ksi lennossa ; ja markmin Arkistoitu 19. maaliskuuta 2014 Wayback Machinessa , samanlainen kuin edellinen, mutta tukee molempia taulukoita, html5 video/audio ja oembed-protokollaa.

Vastaavan näkymän puuttuessa ohjain käyttää automaattisesti yleisnäkymää, joka näyttää ohjaimen palauttamat muuttujat, mikä mahdollistaa sovelluksen liiketoimintalogiikan kehittämisen ennen HTML-asettelun kirjoittamista. Esimerkki "Hello World" -sovelluksesta oletusmallilla:

def hello (): return dict ( tervehdys = 'Hei maailma' )

Toiminnon (funktion) palauttama dict()-arvo tulostetaan automaattisesti HTML-muodossa, jos sivua pyydetään .html-laajennuksella, JSON-muodossa, jos sivua pyydetään .json-laajennuksella, XML-muodossa, jos sivua pyydetään . .xml laajennus. Muut protokollat, kuten jsonp, rss, ics, google maps jne. ovat tuettuja ja niitä voidaan laajentaa.

Alla on monimutkaisempi esimerkki koodista, joka määrittää taulukon ja antaa rekisteröityneille käyttäjille mahdollisuuden muokata sen kenttiä:

db . define_table ( 'asia' , Kenttä ( 'nimi' , notnull = tosi )) @auth . edellyttää kirjautumista () def hello (): return dict ( grid = SQLFORM . grid ( db . thing ))

Virheenseurantajärjestelmä

Jokaisessa web2py-sovelluksessa on virheseuranta :

  • Jos tapahtuu virhe, se kirjoitetaan lokeihin ja käyttäjälle näytetään viesti, jonka avulla voit seurata virheitä.
  • Virheet ja lähdekoodit ovat vain järjestelmänvalvojan saatavilla, joka voi etsiä niitä päivämäärän ja asiakkaan IP-osoitteen perusteella. Mikään virhe ei voi aiheuttaa koodin avaamista käyttäjille.

Koneesta riippumaton cron

Cron on mekanismi toistuvien tehtävien luomiseen ja suorittamiseen taustalla. Se etsii sovelluksen crontab -tiedostoa tavallisessa crontab-muodossa. Käytettävissä on kolme toimintatilaa:

  • Pehmeä cron: cron-rutiinit tarkistetaan verkkosivun sisällön käsittelyn jälkeen, ei takaa tarkkaa suoritusta. Ei-etuoikeutetuille Apache CGI/WSGI -asennuksille.
  • Hard cron: cron-säie käynnistetään, kun web2py käynnistetään. Windowsille ja Rocket/erillinen web2py.
  • System cron: cron pakotetaan suorittamaan komentoriviltä , ​​yleensä järjestelmän crontabista. Unix/Linux-järjestelmiin ja paikkoihin, joissa sinun on suoritettava cron-triggerit, vaikka web2py ei olisi tällä hetkellä käynnissä; sopii myös CGI/WSGI:lle, jos sinulla on pääsy järjestelmän crontabiin.

Tehtävien ajoitus

Versiosta 2.3 alkaen cronin käyttö on poistettu käytöstä, koska web2py:n mukana tulee ajoitus. Tehtävät voidaan määritellä malleissa ja ajoittaa luomalla merkintä tietokantaan. Käyttäjät voivat käynnistää prosesseja, jotka suorittavat tehtäviä taustalla. Ajastin on parempi kuin cron, koska sen avulla voit asettaa enemmän parametreja (alkamisaika, lopetusaika, toistojen määrä, virheyritysten määrä) ja toimii paremmin jatkuvalla resurssien käytössä.

Jakelu tavukoodimuodossa

Web2py voi kääntää verkkosovelluksia jaettavaksi tavukoodina ilman lähdekoodia. Toisin kuin kehyksiä, jotka käyttävät erikoistuneita mallikieliä, Web2py voi myös kääntää koodia tavukoodiksi, koska se on puhdasta Python-koodia.

Globaali suoritusaika

Web2py on ainutlaatuinen Python-verkkokehysten maailmassa, koska mallit ja ohjaimet suoritetaan, ei tuoda. Ne eivät ole moduuleja. Ne suoritetaan yhdessä globaalissa ympäristössä, joka alustetaan jokaisessa http-pyynnössä. Tällä suunnittelupäätöksellä on hyvät ja huonot puolensa.

Suurin etu on kehittämisen helppous, erityisesti nopeaa prototyyppiä varten. Toinen etu on, että kaikki tässä ympäristössä määritellyt objektit nollataan puhtaasti jokaisessa http-pyynnössä, eikä niitä koskaan jaeta pyyntöjen kesken. Tämä tarkoittaa, että kehittäjän ei tarvitse huolehtia objektin tilan (esimerkiksi tietokantakentän luettavissa olevan attribuutin) muuttamisesta tai muutoksesta, joka vuotaa muihin samanaikaisiin pyyntöihin tai muihin sovelluksiin. Kolmas etu on, että web2py mahdollistaa useiden sovellusten rinnakkaiselon samassa ilmentymässä ilman ristiriitoja, vaikka ne käyttävät eri versioita samoista moduuleista tai eri moduuleista samalla nimellä.

Globaalin ympäristön suurin haittapuoli on, että mallitiedostot ja ohjaintiedostot eivät ole moduuleja ja suoritusjärjestyksellä on väliä (vaikka se voidaan määrittää ehdollisilla malleilla). Nimeämisristiriita esiintyy todennäköisemmin kuin tavallisissa Python-moduuleissa. Jotkut Pythonin vakiokehitystyökalut eivät ehkä ymmärrä malleissa ja ohjaimissa määritettyjä objekteja. Lisäksi kehittäjien on oltava tietoisia siitä, että mallien koodi suoritetaan joka pyynnöstä ja tämä voi aiheuttaa suoritusrangaistuksen. Mikään web2py:ssä ei estä kehittäjiä käyttämästä ja tuomasta tavallisia Python-moduuleja (malliton lähestymistapa), ja tätä tarkoitusta varten web2py tarjoaa säikeen paikallisen objektin (nykyinen), joka helpottaa pääsyä nykyiseen pyyntöön liittyviin objekteihin. Tässä tapauksessa kehittäjän on kuitenkin oltava tietoinen samoista ansoista, joihin muut kehykset joutuvat: moduulissa määritellyn objektin tilan muuttaminen voi vaikuttaa muihin samanaikaisiin pyyntöihin.

Toinen haittapuoli on, että koska mallit ja ohjaimet eivät ole luokkapohjaisia, tehokkaasta koodin uudelleenkäytöstä tulee vaikeampaa, varsinkin kun kyvyttömyys periä pääohjaimelta (esim. ApplicationController Ruby on Railsissa) tarkoittaa, että yleisiin ohjaintoimintoihin on viitattava toistuvasti. kaikissa ohjaintiedostoissa.

Tuetut alustat

Käyttöjärjestelmät, Python-versiot, virtuaalikoneet, laitteisto

web2py toimii Windowsissa , Windows CE -puhelimissa, Macissa , Unixissa / Linuxissa , Google App Enginessä , Amazon EC2 :ssa ja lähes kaikissa Python 2.4:n [18] /2.5/2.6/2.7 verkkoisännöissä.

Web2pyn julkaisuversiot sisältävät Python 2.5:n, mutta lähdeversiota voidaan käyttää versioissa 2.4–2.7.

web2py, koska v1.64.0 toimii muokkaamattomana Javassa Jython 2.5: n kanssa ilman tunnettuja rajoituksia. [19]

web2py-koodi voi toimia IronPythonin kanssa .NET :ssä . [20] Rajoitukset:

  • ei csv- moduulia (ei siis tietokannan I/O:ta);
  • ei kolmannen osapuolen tietokanta-ajureita (ei edes SQLitea , joten ei tietokantoja ollenkaan);
  • ei sisäänrakennettua verkkopalvelinta (ellet lamauta sitä poistamalla signaaleja ja kirjaamalla ).

Web2py-binaari [21] toimii USB-asemalta tai kannettavalta kiintolevyltä ilman riippuvuuksia, kuten Portable Python Archived 12.11.2020 Wayback Machinessa .

Web-palvelimet

Web2py vastaa HTTP :n ja HTTPS :n kautta tehtyihin pyyntöihin käyttämällä sisäänrakennettua Rocket-palvelinta [22] sekä Apachea , [23] Lighttpd , [24] Cherokee , [25] Hiawatha , Nginx ja melkein mitä tahansa muuta verkkopalvelinta, joka tukee CGI , FastCGI , WSGI , mod proxy , [26] [27] [28] ja/tai mod python .

IDE:t ja debuggerit

Vaikka monet web2py-kehittäjät käyttävät tekstieditoreja , kuten Vim , Emacs tai TextMate , Web2pyssä on myös sisäänrakennettu verkkopohjainen IDE. Toiset pitävät parempana erikoistuneempia työkaluja, jotka tarjoavat virheenkorjauksen, uudelleenkäsittelyn jne.

Työskentely tietokantojen kanssa

Web2py :n tietokannan abstraktiokerros ( DAL ) luo läpinäkyvästi ja dynaamisesti SQL-kyselyitä ja suorittaa ne useissa yhteensopivissa DBMS-järjestelmissä ilman tietokantakohtaisia ​​SQL-komentoja (samaan aikaan SQL-komennot voidaan suorittaa myös suoraan).

SQLite sisältyy Pythoniin ja on oletusarvoinen web2py-tietokanta. Yhteysmerkkijonon muutos mahdollistaa yhteyden Firebirdiin , IBM DB2 :een , Informixiin , Ingresiin , Microsoft SQL Serveriin , MySQL :ään , Oracleen , PostgreSQL :ään ja Google App Engineen (GAE) tietyin varoin. Erikoisalat:

  • Useita tietokantayhteyksiä.
  • Automaattinen taulukko luo ja muuttaa.
  • automaattiset tapahtumat .
  • Hajautetut tapahtumat :
    • Web2py v1.17:stä lähtien PostgreSQL v8.2:lla ja uudemmilla [30] [31] , koska se tarjoaa API: n kaksivaiheisiin toimituksiin .
    • Web2py v1.70.1:stä lähtien Firebirdillä ja MySQL:llä (kokeellinen).
  • GAE ei ole relaatiokauppa, mutta web2py emuloi tiettyjä toimintoja.

DAL lupaa suurta nopeutta, ainakin verrattuna SQLAlchemyyn ja Stormiin . [32]

Web2py toteuttaa DAL:n, ei ORM :n . ORM kartoittaa tietokantataulukot luokkiin , jotka edustavat tietokantakerroksen loogisia abstraktioita (esim. User-luokka tai PurchaseOrder-luokka), ja kartoittaa tietueet näiden luokkien esiintymiin . DAL sen sijaan kartoittaa tietokantataulukot ja tietueet luokkaesiintymiin, jotka edustavat joukkoja ja tietueita korkeamman tason abstraktioiden sijaan. Sillä on hyvin samanlainen syntaksi kuin ORM:lla, mutta se on nopeampi ja voi kartoittaa melkein kaikki SQL-lausekkeet DAL-lausekkeiksi. DAL:ta voidaan käyttää muusta web2py:stä riippumatta. [33]

Seuraavassa on joitain esimerkkejä DAL-syntaksista:

db = DAL ( 'postgresql://user:pass@localhost/db' , poolin_koko = 10 ) db . define_table ( 'henkilö' , Kenttä ( 'nimi' ), Kenttä ( 'kuva' , 'lataa' )) db . henkilö . insert ( nimi = 'Martin' , kuva = avoin ( 'tiedostonimi.png' )) rivit = db (( db . henkilö . nimi == 'Martin' ) | db . henkilö . nimi . sisältää ( 'T' )) . valitse ( järjestys = db . henkilö . nimi . alempi ())

DAL:n uusin versio tukee 2D GIS -toimintoja Spatialiten ja PostGIS:n kanssa. Nykyiset sovellusliittymät ovat kokeellisia, koska ne voivat siirtyä 3D-sovellusliittymiin.

Automatisoitu tietokannan siirto

web2py tukee myös automaattisia tietokantojen siirtoja  - jos muutat taulukon määritelmää, web2py MUUTTAA sitä vastaavasti. Siirrot ovat automaattisia, mutta ne voidaan poistaa käytöstä missä tahansa taulukossa, ja siirto on yleensä poistettu käytöstä, kun sovellus on valmis suoraa jakelua varten. Siirrot ja siirtoyritykset kirjataan lokiin ja dokumentoidaan muutokset.

Rajoitukset:

  • SQLite ei voi muuttaa taulukkoa ja muuttaa saraketyyppiä, vaan yksinkertaisesti tallentaa uudet arvot uuden tyypin mukaan.
  • GAE:llä ei ole alter-taulukon käsitettä, joten siirtymät ovat rajallisia.

Lisenssi

Web2py-koodi on julkaistu GNU Lesser General Public License (LGPL) -lisenssin versiolla 3 web2py-versiosta 1.91.1 alkaen. [34]

Web2py-koodi ennen versiota 1.91.1 julkaistiin GNU GPL v2.0 :lla kaupallisin poikkeuksin.

Useilla web2pyn avulla jaetuilla kolmansien osapuolien paketeilla on omat lisenssinsä, yleensä Public-domain- , MIT- tai BSD - tyyppiset lisenssit. LGPL-lisenssi ei kata web2pyllä rakennettuja sovelluksia.

Web2pyn tekijänoikeudet omistaa Massimo DiPierro. "Web2py framework" -tavaramerkin omistaa Massimo DiPierro .

Palkinnot

Vuonna 2011 InfoWorld sijoitti web2pyn kuuden Python-verkkokehyksen kärkeen. Arkistoitu 15. joulukuuta 2013 Wayback Machinessa , ja se myönsi web2pylle vuoden 2011 Bossie-palkinnon parhaasta avoimen lähdekoodin sovelluskehitysohjelmistosta . Web2py voitti Vuoden teknologia -palkinnon vuonna 2012. Arkistoitu 18. huhtikuuta 2014 Wayback Machinessa , koska Web2py sisältää kaiken mitä tarvitset verkkosovellusten rakentamiseen - jopa Python-tulkin. Sen luojan tehtävänä on rakentaa helppokäyttöinen kehys ulottuu kaikkialle. Web2pyn tietokannan abstraktiokerroksen avulla voit käsitellä erilaisia ​​tietokantoja ilman, että sinun tarvitsee kirjoittaa SQL:ää. Kun olet määrittänyt tietokantataulukot, Web2py rakentaa automaattisesti hallintaliittymän sovelluksellesi. Itse asiassa Web2pyn yhdistelmäkonsoli ja kojelauta ovat siellä, missä kaikki sovelluskehitystoiminnot tapahtuvat – jopa sovellustiedostojen muokkaaminen. Lopuksi Web2py antaa sinun upottaa Python-koodin Web-sivusi HTML-koodiin, joten sinun ei tarvitse opetella uutta mallikieltä. Kaikella sisäänrakennetulla apuvälineellä Web2py on niin kivuton kuin vain voi .

Bibliografia

web2py opetusohjelma

Web2pyn dokumentaatio on kerätty Massimo DiPierron The Definitive Reference Guide -oppaaseen , joka on arkistoitu 12. kesäkuuta 2018 Wayback Machinessa . Käsikirja on saatavana myös painetussa muodossa tai vain luku - PDF-tiedostona.

Verkkodokumentaatio

Online - dokumentaatio , arkistoitu 19. maaliskuuta 2014 Wayback Machinessa , on linkitetty web2py-kotisivulta, jossa on keittokirja , videoita, interaktiivisia esimerkkejä, interaktiivinen API-viittaus, epydoc s (täydellinen kirjastoviite), UKK , huijauslehti , online-työkalut jne.

Video

Painetut materiaalit

Yleistä tietoa

Tuki

Yhteisön tuki on saatavilla web2py-tietokannan kautta. Arkistoitu 19. maaliskuuta 2014 Wayback Machinessa , web2py-postituslista Arkistoitu 25. kesäkuuta 2012 Google-ryhmien Wayback Machine -palveluun ja #web2py- kanava freenodessa . [35] 2009-10-2009 kaupallista web2py-tukea tarjoaa viisitoista yritystä ympäri maailmaa. [36]

Kehittäjät

Web2py:n johtava kehittäjä on professori Massimo DiPierro , tietojenkäsittelytieteen apulaisprofessori DePaul- yliopistosta Chicagossa . Vuodesta 2011 lähtien web2py-kotisivulla on yli 70 "pääavustajaa". [37]

Lähdekoodi

Web2py-lähdekoodi on saatavilla kahdesta arkistosta:

Web2py:ssä käytetyt kolmannen osapuolen komponentit

Historia ja nimi

Massimo DiPierro julkaisi web2pyn ensimmäisen julkisen version lähdekoodin GNU GPL v2.0 -lisenssillä 27. syyskuuta 2007 nimellä Enterprise Web Framework (EWF). Nimeämisristiriidan vuoksi nimi jouduttiin muuttamaan kahdesti: EWF v1.7 korvattiin Gluon v1.0:lla ja Gluon v1.15:n jälkeen web2py v1.16. Lisenssi muutettiin LGPLv3:ksi, kun web2py-versio 1.91.1 julkaistiin 21.12.2010.

Web2py:n avulla rakennetut sovellukset

  • Movuca CMS ja sosiaalisen verkoston moottori.
  • Instant Press Blog -alusta.
  • Ourway sosiaalinen verkosto.
  • NoobMusic- portaali rock-musiikista.
  • LinkFindr Network -diagnostiikkatyökalu.
  • StarMaker Karaoke-musikaalisten ja sosiaalisten sovellusten luominen.

Pidempi luettelo kuvakaappauksineen löytyy täältä . Arkistoitu 14. maaliskuuta 2014 Wayback Machinessa ja täältä Arkistoitu 19. maaliskuuta 2014 Wayback Machinessa . Lista liitännäisistä löytyy täältä

Muistiinpanot

  1. Julkaisu 2.21.1 - 2020.
  2. Web2py Framework - 2020.
  3. Web2py (2013), Mikä on web2py?, web2py.com, haettu 11. lokakuuta 2013, < http://www.web2py.com/init/default/what Arkistoitu 17. tammikuuta 2020 Wayback Machinessa >
  4. Web2py on tukenut monia protokollia versiosta 1.63 lähtien . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 24. huhtikuuta 2018.
  5. SOAPin käyttö web2py:n kanssa . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 24. huhtikuuta 2018.
  6. Älykkäiden verkkopohjaisten lomakkeiden kirjoittaminen (linkki ei ole käytettävissä) . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 30. kesäkuuta 2017. 
  7. Rocket Web Server . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 29. marraskuuta 2020.
  8. Web2py online IDE Arkistoitu 8. syyskuuta 2012 Wayback Machinen kanssa It's All Text!  (linkki ei saatavilla) Firefox-lisäosa ja Ulipad Arkistoitu 12. maaliskuuta 2014 Wayback Machinessa (avoimen lähdekoodin Python IDE)
  9. Miten Web2py-sovellusten virheenkorjaus tehdään? . Käyttöpäivä: 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 19. maaliskuuta 2014.
  10. Wing IDE tukee web2py:n virheenkorjausta . Käyttöpäivä: 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 12. helmikuuta 2014.
  11. Eclipse/PyDev tukee web2py-virheenkorjausta . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 13. helmikuuta 2010.
  12. Web2pyn käyttäminen Eclipsessä . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 19. joulukuuta 2010.
  13. Winpdb:llä voi tehdä etävirheenkorjausta TCP/IP:n (downlink) kautta . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 9. marraskuuta 2015. 
  14. Salattu tiedonsiirto Winpdb:ssä (downlink) . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 9. marraskuuta 2015. 
  15. Yksinkertaisin web2py-sivusto: "Hello World" -esimerkki . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 29. toukokuuta 2019.
  16. Web2py-mallien käyttäminen ilman web2py:tä . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 14. helmikuuta 2012.
  17. Joomla-mallien käyttäminen web2py:n kanssa . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 24. huhtikuuta 2018.
  18. Web2py:n suorittaminen Python 2.4:n kanssa . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 31. lokakuuta 2013.
  19. Web2py toimii täysin Javalla ja J2EE:llä Jythonin avulla . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 9. marraskuuta 2012.
  20. Web2py toimii IronPythonin kanssa .NET:ssä rajoituksin . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 25. huhtikuuta 2014.
  21. MySQL web2py Windows-binaarilla USB-muistitikulla . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 26. toukokuuta 2012.
  22. Sisäänrakennetun SSL-palvelimen käyttäminen . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 15. huhtikuuta 2015.
  23. Web2py, jossa on Apache ja mod_ssl . Käyttöpäivä: 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 7. kesäkuuta 2012.
  24. Web2py, jossa on Lighttpd ja FastCGI . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 25. huhtikuuta 2014.
  25. Web2py Cherokeen kanssa . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 2. joulukuuta 2013.
  26. Apache-moduuli mod_proxy . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 10. helmikuuta 2011.
  27. Web2py ja mod_proxy . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 31. lokakuuta 2013.
  28. Web2py ja mod_proxy ja mod_proxy_html . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 18. maaliskuuta 2014.
  29. Wing IDE:n käyttö web2py:n kanssa . Käyttöpäivä: 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 12. helmikuuta 2014.
  30. PostgreSQL:n hajautetut tapahtumat Arkistoitu 14. huhtikuuta 2009.
  31. Hajautetut tapahtumat PostgreSQL:llä — lisätietoja
  32. ORM-vertailu . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 31. lokakuuta 2013.
  33. Web2py DAL:n käyttäminen ilman web2py:tä . Käyttöpäivä: 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 1. marraskuuta 2013.
  34. web2py-käyttöoikeussopimus . Haettu 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 25. huhtikuuta 2014.
  35. IRC #web2py -kanava Arkistoitu 27. lokakuuta 2009.
  36. Kaupallinen tuki web2pylle . Käyttöpäivä: 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 19. maaliskuuta 2014.
  37. Luettelo web2py:n tärkeimmistä avustajista . Käyttöpäivä: 19. maaliskuuta 2014. Arkistoitu alkuperäisestä 19. maaliskuuta 2014.

Linkit