Caso di studio:
accesso a dati remoti
Prof. Mauro Gaspari: [email protected]
Mauro Gaspari - University of Bologna - [email protected]
DB Locali vs DB Remoti
●
●
Accesso locale: si scarica una copia del DB nel
proprio PC e poi si accede direttamente ai dati
che contiene.
Accesso on line: utilizzando un DB su un server
remoto.
Mauro Gaspari - University of Bologna - [email protected]
Access to remote data
●
Utilizzando un programma (uno script Python):
–
pyODBC (Open Database Connectivity) supporto per l'accesso
a DB locali e romoti (utilizza SQL).
–
Web services (chiamate di funzione basate su web):
●
●
xignite (http://www.xignite.com/)
yahoo finance (http://finance.yahoo.com/)
Mauro Gaspari - University of Bologna - [email protected]
Web vs Web Services
Ordinary Web
HTTP Request
Browser
HTTP Response
Webserver
Application
Webserver
Client PC
HTML or Other Document
Ordinary
Ordinary web
web was
was created
created to
to download
download documents
documents
Mauro Gaspari - University of Bologna - [email protected]
Web Services
HTTP Request
Python
Program
HTTP Response
Service
Object
Client PC
Message
Web
Web services,
services, in
in contrast
contrast to
to web,
web,
provide
provide program-to-program
program-to-program communication.
communication.
Programs
Programs on
on the
the webserver
webserver are
are called
called service
service objects.
objects.
Messages
Messages follow
follow ad-hoc
ad-hoc formats
formats (HTTP,
(HTTP, XML
XML –– SOAP).
SOAP).
Mauro Gaspari - University of Bologna - [email protected]
Webserver
Web Services
Parameters
Python
program
Result of Calculation
Service
Object
Client PC
Message
The
The sending
sending program
program sends
sends parameters
parameters for
for the
the calculation.
calculation.
The
The service
service object
object does
does the
the calculations
calculations and
and sends
sends back
back results.
results.
Mauro Gaspari - University of Bologna - [email protected]
Webserver
ystockquote
●
Python API per Yahoo Finance.
●
Basata su HTTP (non usa XML).
●
Getting started:
–
Scaricare e salvare ystockquote.py da
http://goldb.org/ystockquote.html nella cartella dove
ci sono i programmi Python.
–
Connettersi a Internet.
–
Eseguire python ed importare il modulo ystockquote:
>>> import ystockquote
Mauro Gaspari - University of Bologna - [email protected]
Funzioni di ystockquote
●
Recuperare il prezzo di un azione: ystockquote.get_price('symbol')
I simboli delle azioni sono disponibili su yahoo finance
restituisce un valore floating point.
●
Altre caratteristiche come: cambio valute, volume ...
●
E' possibile recuperare tutti I dati di un certo simbolo:
ystockquote.get_all('symbol')
restituisce un dizionario.
●
Dati storici: get_historical_prices('symbol','start_date', 'end_date')
una data e' una stringa con la forma: 'yyyymmdd'
restituisce una lista di liste.
Mauro Gaspari - University of Bologna - [email protected]
Esempi cambio valuta
●
Currencies:
get_price('usdeur=x')
– get_price('eurusd=x')
–
Mauro Gaspari - University of Bologna - [email protected]