Pythoni ja Zope veebirakendused. Tutvus keskkonnaga * Installeeri Zope. Kasutajanimeks ja parooliks admin. * Loo omale harjutamiseks kataloog. * Koosta tervitav veebileht. * Loo eraldi päisefail. Lisa loodud lehele päis. * Loo jalusefail ning lisa lehele. * Loo teine leht sama päise ja jalusega. * Lae üles pilt. * Paiguta pilt lehele. * Loo roll opilane * Loo kasutajad juku ja kati vastavas rollis * Loo kataloog, kus õpilastel oleks vaid lugemisõigus. Testi tulemust. * Loo kasutaja sass ilma rollita. Määra talle õpilase lugemisõigusega kataloogis kohalikuks rolliks õpilane. * Teata DTML-i abil kasutaja nimi * Tutvu põhikäskudega: tsükkel, valik * Koosta loetelus olevatest nimedest tabel, kus iga nime ees on rooma number ning kordamööda on nimed eri värvi. * Teata kasutaja antud arvude jagatis ümardatuna kaks kohta peale koma. Isikuandmestik Töö aluseks Zope loomaaia külalisraamat * Loo vorm ja skript inimese ees- ja perekonnanime ning sünniaasta sisestamiseks * Loo leht kõikide inimeste andmete näitamiseks * Loo loetelu, kus on näha kõigi ees- ja perekonnanimed. Nimele vajutades avaneb vastava inimese andmetega eraldi leht, kus on näha ka sünniaasta ning tulp, mille kõrgus on võrdeline inimese vanusega. * Lisa eelnevasse loetellu viide inimese andmete muutmiseks. Andmeid muuta tohib vaid registreerunud kasutaja. Python * Ava Pythoni viip * Omista muutujale arv * Trüki selle väärtus * Liida arvule 7 * Omista sõne * Trüki kaks viimast tähte * Loo koeranimedest loetelu * Trüki loetelu * Lisa nimi * Trüki viimane nimi * Trüki keskmine nimi * Sorteeri loetelu tähestiku järgi * Sorteeri loetelu, pannes pikima nime ette * Loo tervitav programmifail * Koosta funktsioon arvu korrutamiseks kahega, testi seda * Korruta kahega vaid sajast väiksemaid arve * Trüki nimede failist teise faili vaid pikim nimi Isiklik veebiserver Töö aluseks BaseHTTPServeri näide * Vasta igale päringule "Tere". Samas kirjuta logifaili, millist lehte päriti. * Lehe vaatajale teata, kas vastava nimega lehte on juba päritud. * Kui päritav fail leidub jooksvas kataloogis, siis väljasta faili sisu, muul juhul teata faili puudumisest * Määra, millise tähega algavaid faile tohib vaadata. * Määra regulaaravaldise abil, millise nimemustriga faile tohib vaadata. Moodul * Tutvu mooduli loomise näidetega. * Joonista moodulile oma ikoon. * Loo moodul oksjoni korraldamiseks. Iga järgnev kasutaja saab olemasolevat summat vaid suurendada. * Iga kasutaja kirjutab pakutava summa kõrvale ka oma nime. Kontrollitakse, et summa oleks arv ning nimi oleks vähemalt kaks tähte pikk ning ei oleks arv. Administreeritav moodul * Administraator saab oksjonimooduli loomisel lisada kauba nime, kirjelduse ja alghinna. * Kõik pakkumised jäävad eraldi elementidena meelde. Administraatoril saab neid hiljem vaadata. * Eraldi on võimalik näha määratud nimega isiku pakkumisi. * Kui administraatori poolt määratud ajavahemiku jooksul pole keegi uut hinda pakkunud, siis loetakse ülepakkumine lõppenuks ning lehe avajale on see näha. IVA ülesehitus Enamik IVA andmeid jaguneb installeerimiskataloogist alates kasutajate või kursuste alla. * Tutvu installeerimispakis olevate Pythoni failidega ning ZMI alt nähtavate objektidega * Lisa ZMI alt kasutajainfo lehele omapoolne tekst. Testi muutust. * Lisa tekstiredaktoriga ui/UserInfo/user_info.dtml faili tabelisse eraldi rida lemmikvärvi tarbeks. Vastuse osa jäta esialgu tühjaks. * Haldusvahendi abil anna korraldus "reload all dtml", mille abil peaks kujundus failisüsteemi andmete põhjal uuendatama. Testi tulemust. * Muuda UserInfo.py faili nõnda, et eesnimi väljastataks alati suurte tähtedega. * Lase programmikood uuendada Control_Panel -> Products -> IVA -> refresh alt. Testi tulemust. * Lisa UserInfo.py koodi vahendid lemmikvärvi seadmiseks ja küsimiseks. Värvi puudumisel (näiteks klassi vanemate eksemplaride korral) teata "puudub". * Testi meetodit otse brauserirealt * Näita tulemust inimese andmete kuvamisel. * Luba lemmikvärvi ka muuta. * Lisa "lemmikvärv" (favourite colour) nii eesti- kui inglisekeelsesse tõlkefaili ning dtml-i. Lae uuesti DTMLid ja tõlked. Testi tulemust. Kalender * Teata Pythoni abil tänane kuupäev. * Loo klass "Kalender", mis paistaks väljapoole ZMI alt kui kataloog. * Loo klass "KalendriSyndmus", mis paistaks väljapoole failina. Klassi objektide atribuutideks on "teade" ning "aeg". * Loo kasutaja juurde meetod kalendri lisamiseks, juhul kui kalendrit tema küljes veel pole. * Loo kalendri juurde meetod sündmuse lisamiseks. Testi loodut. * Loo kalendri juurde meetod näitamaks olemasolevaid sündmusi. Juhul kui kasutajal on kalender, siis lisa ta veebilaua menüüsse viide kalendri juurde, kustkaudu on võimalik olemasolevat sündmuste loetelu näha. * Koosta kasutajaliides sündmuste lisamiseks. * Näita kasutaja veebilaual jooksva kuu kalendrit. Päevad, mille juures leidub sündmusi, on kalendris viitena. Sellele vajutades avaneb vastava päeva sündmuste loetelu. Testid * Tutvu testidega seotud programmikoodifailidega: YlTest.py, YlAlus.py, YlTyybid.py. Jälgi, millised omadused on kõikidele ülesannetetüüpidele ühised, millised mitte. Proovi ülesannete kujundust veidi muuta. * Lisa uus ülesandetüüp: kiiruseülesanne. Ülesande koostamisel mõtleb arvuti jalgratturi kiiruse vahemikus 7-20 km/h ning sõiduaja vahemikus 1-4 tundi. Kasutajal tuleb sisestada teepikkus. * Luba õpetajal ette anda võimalike sõiduvahendite loetelu, mille hulgast arvuti valib. Luba arvutada ka reaalarvudega ning lugeda vastus õigeks, kui see jääb soovitud vahemikku. Sõnumid * Sarnaselt kalendriga loo klassid sõnumite hoidmiseks ning nendega ümber käimiseks. Loo kasutajale koht talle saabunud sõnumite vaatamiseks. * Loo võimalus teistele kasutajatele sõnumite saatmiseks. Vaatamata sõnumite pealkirjad on näha erimärgistusega. Kasutaja saab talle saabunud sõnumeid ka kustutada. * Teateid on võimalik korraga saata nii samal kursusel kui samas rühmatoas olevatele kasutajatele. * Kui kasutaja on omal vastava seadistuse märkinud, siis saabub talle sõnum iga uue elemendi lisamisel raamaturiiulisse. Foorum Loo foorum kursusesiseseks mõttevahetuseks. * Loo klass foorumiteate tarbeks, mis paistab välja kataloogina. Igal teatel on sisu ning võimalus tema sisse lisada teisi teateid. * Loo kasutajaliides teadete lisamiseks ja vaatamiseks. * Foorumisse saavad teateid lisada ainult vastaval kursusel registreeritud kasutajad. * Kursuse õpetajal on võimalus teateid tähtsamatena ära märkida. * Iga teate juures on näha selle sisestaja nimi ning sisestusaeg. * Teated, mis on vaatamata, või mille vastus(ed) on vaatamata, märgitakse vastava kasutaja jaoks tärniga. Arhiveerimine * Tutvu IVA arhiveerimisvõimaluste ja -võtetega. * Kirjuta XML-teegi abil välja kolmest eesnimest koosnev loetelu. * Loe see loetelu failist sisse ning väljasta esimene eesnimi. * Loo foorumi teadete säilitamiseks oma XML-formaat. * Väljasta selle abil foorumi esimese taseme teated. * Väljasta nõnda kogu foorumi andmepuu. * Võimalda olemasoleva foorumi teate külge lugeda andmepuuna arhiveeritud foorum. Andmebaasiühendus Tutvu selleteemalise konspektiga * Loo andmebaasiühendus * Loo tabel tulpadega "nimi" ja "hinne" * Testi tabeli toimimist SQL-käskudega * Koosta leht hinnete lisamiseks * Koosta leht Juku hinnete vaatamiseks * Vaata kasutaja pakutud õpilase hindeid * Logi tegevused