Itv0030 2007 lab 2 requirements

Allikas: Lambda

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

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