Prax3 lisamemo
Allikas: Lambda
								
												
				Sisukord
Kolmanda praksi memo: 16 nov kaugõppe loeng
Erinevad teemad.
Mis järjekorras praksi teha
- "hello world"
serverisse katseproge nimega sonad.py urlilt ..../sonad.py siis ta vastab ka
- sonad.py annaks mulle teise praksi htmli muutmata kujul
  
sonad.py loeb serverist prax3.html faili ja trükib selle välja
- serveris segiaetud sona tegemine?
- sonad.py teeb segiaetud sõna, ja katsetame, et tegelt töötab
 
- ..... var segisona="ASENDASONA";
 
sonad.py ASENDAB stringi ASENDASONA enda tehtud segiaetud sõnaga tahan kontrollida, kas sõna mis kokku ajasin, oli õige. Nupp juba on. Nime jaoks vormivälja <form > <input type="text" name="nimi"> <input type="submit"> </form>
- server peaks faili kirjutama
Kaks äärmusvarianti veebirakenduse jaoks
- serveriproge ehitab htmli valmis
- ainult üks staatiline leht
javascript sellelt lehel saadab data serverisse, loeb serverist datat, ja ehitab lehe htmli pidevalt ümber
Alternatiiv 1: vormilt data serverisse
Vaata http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/loeng/tst8.py
sona="lennuk";
function insertword() {
  document.getElementByID("sona").value=sona;
  return true;
}
<form action="?" method="GET">
a <input type="text" name="nimi"></input><br>
b <input id="sona" type="hidden" name="sona"></input><br>
<input type="submit" onsubmit="insertword();">
</form>
Avab urli a la http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/loeng/tst8.py?name=tanel&sona=lennuk
Alternatiiv 2: javascriptiga data serverisse
sona="lennuk";
function sendword() {
  var url;
  
  url="http://..../save.py?sona="+
    encodeURIComponent(sona)+"&name=";
  url=url+encodeURIComponent(
      document.getElementByID("nimi").value);
  document.location=url;
  
}
<form action="?" method="GET">
a <input id="nimi" type="text" name="nimi">jüri ü=&di</input><br>
</form>
<button onclick="sendword();">
Faili kirjutamine
Variant 1: /tmp kataloogis a la "/tmp/suva_tanel_tammet.txt"
Variant 2: tee oma kataloogi fail ntx sonad.txt ja siis tee
chmod a+rw sonad.txt
Cross-server javascript
Ei ole selles praksis vajalik. Aga, kui tahta kasutada, siis on kaks varianti:
- Erinevad imemeetodid lahenduseks. Parem mitte nendega jännata.
- Mainstream meetod toetub kahele vaalale:
- padded json:
 
     - myfun({"name": "jaan", "age": 23});
     
     - ...&pad=myfun&
  
- script tag injection
 
     <script src="...">
     
Hea mõte on kasutada jquery-t abiks.

