Webanwendung mit Sinatra

Die Ruby-Bibliotheken verwalten Sie mittels RubyGem. Um Web-Anwendungen mit Sinatra zu programmieren, richten Sie mit dem Kommando gem install sinatra das Sinatra-gem ein. Listing 2 zeigt eine vollwertige Web-Anwendung, die Sie nach dem Start mit ruby webapp.rb im Browser unter der Adresse http://localhost:4567/ aufrufen.

Listing 2

require 'sinatra'
puts Sinatra::VERSION
get '/' do
  'Hello world!'
end

Datenbank befüllen

Jetzt müssen Sie die Messdaten noch geeignet ablegen, wozu in der Regel eine Datenbank dient. Bei SQLite handelt es sich um eine solche, die für einfache Zwecke oft genügt und trotzdem SQL versteht. Sie richten das gute Stück aus dem Debian-Paket sqlite3 ein. Um es aus Ruby heraus zu verwenden, benötigen Sie zudem das Ruby-gem sqlite3 benötigt.

Eine neue Datenbankdatei db.sqlite3, die zum Beispiel die Temperaturwerte zu den jeweiligen Zeitpunkten aufnimmt, erstellen Sie mit dem Befehl

$ sqlite3 db.sqlite3 'create table temperatures(zeit integer, t real)

Das Ruby-Programm in Listing 3 greift mit Hilfe von ActiveRecord auf diese Datenbank zu und füllt sie mit den Werten, die es aus einer CSV-Datei wetter.csv einliest. Die Zeilen in der CSV-Datei wiederum enthalten die Daten der Wetterstation im Format aus Listing 1.

Das Schöne an ActiveRecord: Es kümmert sich automatisch um alles, was man für das Lesen und Schreiben von Datenbanken braucht. So erkennt es in Listing 3 an den Namen der Klasse Temperature, dass es in der Datenbank die Tabelle temperatures verwenden muss, und am Namen der Variablen (zeit und t), in welche Spalten der Datenbanktabelle es schreiben muss.

Listing 3

require 'csv'
require 'active_record'
data = CSV.read('weather.csv', { col_sep: ':' })
ActiveRecord::Base.establish_connection({"adapter"=>"sqlite3", "database"=>"db.sqlite3"})
class Temperature < ActiveRecord::Base
  validates_uniqueness_of :zeit
end
data.each do |d|
  werte = { zeit: d[0], t: d[11] }
  Temperature.create werte
end

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare
Gute Arbeit
W. Spitzner (unangemeldet), Sonntag, 26. April 2015 18:49:47
Ein/Ausklappen

Eine genauere Beschreibung des Ablaufes mit den Befehlsfolgen wäre schön gewesen. So muß man das Rad noch einmal neu erfinden. Für Anfänger völlig ungeeignet.
Schade..


Bewertung: 250 Punkte bei 61 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 2 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...