Itv0030 2007 lab 2 requirements
Sisukord
Laboratoorne töö nr 2
NB! Allpool tehtud väike muutus materjalid.db asukoha osas ning tmp kataloogi õiguste osas
Töö sisuks on laboratoorses töös 1 realiseeritud dummy-rakenduse reaalne realiseerimine serveris, kasutades seejuures otsingutulemuste sisselugemisel ja kuvamisel XMLHttpRequest-i. Realiseerida on vaja:
- lehekülgede ülesriputamine serverisse
- andmete sisestamine serveris olevasse andmebaasi
- otsing, kusjuures otsingutulemusena annab server json formaadis andmed, ning lehel olev javascript kuvab tulemuse html-ks. Alternatiivina võib kasutada ka xml-formaadis andmeid, ning tulemus kuvada html-ks xslt abil.
Serveripoolse realisatsiooni võib teha kolmel viisil:
- realiseerides kõik ise, oma valitud serveril ja keeles
- kasutades õppejõu tehtud cgi skripte salvestamiseks ja otsinguks, vt allpool
- tehes viimastest oma koopiad, ning neid siis oma äranägemisel ümber tehes
proovi realiseeritud otsingut
Ava url http://193.40.254.12/cgi-bin/tammet/otsi.py?order=id&direction=desc&getrows=2 mis peaks tulemuseks andma json formaadis andmed
Ava leht http://193.40.254.12/html/tammet/otsing.html ning proovi sisestada 'mina' ja seejärel 'sina': leitud andmed kuvatakse html-s
logi ise serverisse
Serverina kasutame dijkstra.cs.ttu.ee peal jooksvat vmware virtuaalmasinat. Sisse saad logida oma arvutiklassi kasutajanime ja parooliga:
ssh kasutajanimi@193.40.254.12 (kasutajanimi asemel pane oma kasutajanimi arvutklassis), sisesta parool
NB! Serverist ei tehta backuppe, sinu failid võivad väga kergesti kaduma minna: kindlasti hoia kõiki oma faile tagavaraks kusagil oma masinas, igaljuhul väljapool seda serverit.
html lehtede ülespanemine
Kasuta apache olevat kataloogi /var/www/html, tehes sinna oma kasutajatunnusega kataloogi, et segi ei läheks:
tee:
cd /var/www/html mkdir kasutajanimi
Seejärel pane oma veebisaidi lehed (html, css jne) kataloogi /var/www/html/kasutajanimi
Faili saab sinna laadida näiteks scp käsuga niimoodi:
scp minufail kasutajanimi@193.40.254.12:/var/www/html/kasutajanimi/minufail
andmete salvestamine
Andmete salvestamiseks saad kasutada cgi-d
http://193.40.254.12/cgi-bin/tammet/salvesta.py
andes talle get-i või postiga parameetrid, mis vastavad andmebaasi schema väljadele, v.a. id, mida sisestada ei saa:
create table materjalid( id integer primary key --- autoincrement --- unikaalne id ,laadija varchar(40) NOT NULL --- laadija nimi voi hyydnimi ,ylikool varchar(40) --- ylikooli nimi ,teaduskond varchar(40) --- Teaduskonna nimi ,ainekood varchar(40) --- Aine kood ,ainenimetus varchar(40) --- Aine nimetus ,oppejounimi varchar(40) --- jne ,materjalikeel varchar(40) ,materjalityyp varchar(40) ,materjalinimi varchar(40) ,lyhikirjeldus varchar(40) );
näiteks:
http://193.40.254.12/cgi-bin/tammet/salvesta.py?laadija=kasutajatunnus&ylikool=tty
õnnestunud salvestamine annab tulemuseks arvu 1, ebaõnnestumine annab arvu 0.
NB! Failide üleslaadimist salvesta.py ei realiseeri, ta realiseerib ainult andmete salvestamist.
andmete otsimine
Andmete otsimiseks kasuta cgi-d
http://193.40.254.12/cgi-bin/tammet/otsi.py
mis võtab analoogiliselt salvestamisprogrammile cgi-argumentideks eelviidatud väljanimed ja väärtused, näiteks
- json formaat: http://193.40.254.12/cgi-bin/tammet/otsi.py?laadija=mina
- xml formaat: http://193.40.254.12/cgi-bin/tammet/otsi.py?laadija=mina&format=xml
Osasid väljasid kasutatakse täppisotsinguks, osasid sõna sisalduse või alguse järgi, vt koodist: kasutliidesed lab 2 otsingu cgi
Lisaks väljanimedele saad kasutada täiendavaid parameetreid:
- order=väli, mille järgi sorteeritakse (vaikimisi id)
- direction= kas desc või asc: sorteerimise suund (vaikimisi desc)
- fromrow= mitmendast reast alates tulemus antakse (vaikimisi 0 ehk esimene rida)
- getrows=mitu rida maksimaalselt antakse (vaikimisi 100)
- format= kas json või xml (vaikimisi json)
Oma cgi programmide tegemine
Tee oma kasutajatunnusega kataloog cgi-bin alla:
cd /var/www/cgi-bin mkdir kasutajanimi
ja pane cgi-programmid sinna kataloogi /var/www/cgi-bin/kasutajanimi Igale cgi-programmile nimega minuprogramm tee:
chmod a+rx minuprogramm
Seejärel tee kõigile ligipääsetavasse ajutisse kataloogi /tmp/kasutajanimi oma sqlite andmebaas ka:
mkdir /tmp/kasutajanimi chmod +w /tmp/kasutajanimi cd /tmp/kasutajanimi sqlite materjalid.db < materjalid.sql sqlite materjalid.db < data.sql chmod a+rw materjalid.db
Õppejõu näidis-html leht ja programmid
Kolme mainitud faili saad vaadata kas siit altpoolt või kopeerida endale viidatud kohast (palun ära nimetatud faile ise muuda!)
kasutliidesed lab 2 otsingu html /var/www/html/tammet/otsing.html
kasutliidesed lab 2 otsingu cgi /var/www/cgi-bin/tammet/otsi.py
kasutliidesed lab 2 salvestamise cgi /var/www/cgi-bin/tammet/salvesta.py