Flask è un framework di Python fantastico e davvero leggero per creare potenti web application ed è un ottimo strumento per creare i propri siti web in modo dinamico ed interattivo.
Con questa tecnica si possono creare delle integrazioni applicative interessanti su Ibm-I , anche su versioni antecedenti alla 7.X.
Il framework più famoso di python per costruire applicazione web è django, però con flask si possono da subito ottenere risultati eccellenti e modernizzare i processi gestionali con nuove applicazioni che sfruttano le tecnologie attuali quali boostrap, jquery, ecc.
In questa articolo illustro un esempio semplice per comprendere la struttura di base dell’applicazione e le sue potenzialità.
Index
Questo è il cuore del programma python nel quale avviene l’engine della pagina html attraverso il framework flask di python.
Il “render_template” è tutto ciò che il server rende sotto forma di html e il”route” rende il nome della pagina da inserire nell’url del browser.
from flask import Flask, render_template
from tkISeries import tkISeries
app = Flask(__name__)
@app.route('/articoli', methods=('GET', 'POST'))
def articoli():
iseries=tkISeries()
iseries.connection()
rows=iseries.selectArticoli(iseries.c1)
return render_template('/articoli.html', len = len(rows), lenr = len(rows[0]), rows=rows)
Questa è un esempio della classe python per l’esecuzione della connessione al database e della select per il ritorno delle colonne, istanziata dall’applicazione principale.
Il pacchetto python “pypyodbc” e il driver odbc Ibm sono i prerequisiti per la connessione e l’esecuzione delle specifiche sql desiderate.
mainapp.py
import pypyodbc
class tkISeries():
def init(self):
super(tkISeries, self).init()
def connection(self):
#xxx.xxx.xxx.xxx Ip Ibm-I user=utente Ibm-I password=password utente Ibm-I
connection = pypyodbc.connect(driver='{iSeries Access ODBC Driver}',
system='xxx.xxx.xxx.xxx',uid='user',pwd='password')
self.c1 = connection.cursor()
def selectArticoli(self,c1):
#LIBRERIA=Nome libreria IBM-I, FILE=Nome tabella
stringa=("select cdar, dsar, dssa, umba, decimal(csbc,11,2) from LIBRERIA.FILE ")
try:
c1.execute(stringa)
row = c1.fetchall()
except Exception as e:
print ("error")
return row
Il codice html contiene i collegamenti a boostrap e jquery per eseguire una ricerca nella pagina.
I delimitatori tra parentesi graffe {%….%} esprimono istruzioni(for,if,..).
I delimitatori tra parentesi graffe {{…}} esprimono le variabili.
Utilizzo un semplice server wsgi python di nome waitress:
Per eseguire l’applicazione lanciare il seguente comando : python waitress_server.py.
L’indirizzo ip da inserire nel browser corrisponde alla macchina dove è stato lanciato il server http (pc,server Windows, server Linux,..)
A questo punto è sufficiente digitare nel browser l’indirizzo http://indirizzo_ip:8080/articoli e si vedrà il risultato finale!
waitress_server.py from waitress import serve import mainapp serve(mainapp.app, host='0.0.0.0', port=8080)
Il javascript di jquery esegue la ricerca su tutto l’html. Le classi boostrap rendono la pagina html responsive e moderna.
….ed ora buon divertimento e spazio alla creatività.
L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di…
Ciao a tutti, oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM…
Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…
Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…
Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…
Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…
View Comments