Datan lukeminen web-palvelimella
461 531 626
Tämän sivun ohjeissa on kerrottu, miten data saadaan luettua tietokannasta ja tulostettua selaimelle flask-web-palvelimen avulla. Ohjeeseen ei ole kirjattu python-rivejä, jotka ovat samoja kuin edellisen sivun ohjeessa; ts. ennen alla olevia ohjelmariviä täytyy ensin määritellä merkistökoodaus (utf-8-rivi), tuoda MySQLdb-kirjasto (import-rivi), määritellä tietokantayhteys (mySQLdb.connect-rivi) ja avata yhteys (cursor-rivi)!
Tehdään Python-skripti (esim. web-lt.py), jolla taulun sisältö saadaan tulostettua. SELECT-lauseen *-merkki tarkoittaa, että lampodata-taulusta valitaan kaikki sarakkeet (kultakin riviltä):
Älä kirjoita omaan tiedostoosi keltaisella pohjalla olevia kommentteja!
<html> <head> <meta charset="utf-8"> </head> <body> <table border=1> HTML-taulukon alkutagi; solujen ympärille yhden pikselin levyiset reunat <tr> HTML-taulukon rivin alkutagi <th>Päiväys</th>HTML-taulukon otsikkosolut (4 kpl) <th>Aika</th> <th>Tila</th> <th>Lämpötila</th> </tr>Käydään läpi kaikki templateen välitetyn taulukkomuuttujan k rivit ja sijoitetaan kunkin rivin sisältö muuttujaan rivi{% for rivi in k %} Python-kielinen osuus ympäröidään templatessa {% %} merkeillä. <tr> {% for kentta in rivi %} Kunkin rivin sisällä käydään läpi sarakkeet <td>{{ kentta }}</td> ja tulostetaan ne omiin soluihinsa {% endfor %} Sisemmän for-loopin loppu </tr> {% endfor %} Ulomman for-loopin loppu </table> Taulukon loppu </body> </html>
Tässä esitetään vain osuus, joka tarvitaan tietokannan tulostamiseen web-palvelimen avulla.
@app.route("/lt") def sub(): tietokanta = MySQLdb.connect("localhost", "monitor", "salakala", "ltmittaukset", charset='utf8', use_unicode=True) kursori=tietokanta.cursor() kursori.execute ("SELECT * FROM lampodata") kentat = kursori.fetchall() return render_template('web-lt.html', k=kentat) # Send text to the browser
<< Edellinen (6) Datan lukeminen tietokannasta | Sivu 7/9 | Seuraava >> (8) Datan lukeminen web-lomake-kyselyllä |