Flask is a fantastic and very light Python framework for creating powerful web applications and is an excellent tool for creating your own websites in a dynamic and interactiv
e way. With this technique you can create interesting application integrations on Ibm-I, even on versions antecedent to 7.X. The m
ost famous python framework for building a web application is django, but with flask you can immediately get excellent results and modernize management processes with new applications that take advantage of current technologies such as boostrap, jquery, etc.
In this article I illustrate a simple example to understand the basic structure of the application and its potential.
Index
This is the heart of the python program in which the engine of the html page is made through the python flask framework.
The “render_template” is all that the server renders in the form of html and the “route” renders the name of the page to insert in the url of the browser.
from flask import Flask, render_template from tkISeries import tkISeries app = Flask (__ name__) @ app.route ('/ articles', methods = ('GET', 'POST')) def articles (): iseries = tkISeries () iseries.connection () rows = iseries.selectArticoli (iseries.c1) return render_template ('/ articolo.html', len = len (rows), lenr = len (rows)[0], rows = rows)
This is an example of the python class for the connection to the database and the select for column return, instantiated by the main application. The python packa
ge “pypyodbc” and the odbc Ibm driver are the prerequisites for the connection and the execution of the desired sql specifications.
mainapp.py import pypyodbc class tkISeries (): def init (self): super (tkISeries, self) .init () def connection (self): # xxx.xxx.xxx.xxx Ip Ibm-I user = Ibm-I user password = Ibm-I user password connection = pypyodbc.connect (driver = '{iSeries Access ODBC Driver}', system = 'xxx.xxx.xxx.xxx' uid = 'user', pwd = 'password') self.c1 = connection.cursor () def selectArticles (self, c1): # LIBRARY = IBM-I library name, FILE = Table name string = ("select cdar, dsar, dssa, umba, decimal (csbc, 11,2) from LIBRERIA.FILE") try: c1.execute (string) row = c1.fetchall () except Exception as e: print ("error") return row
The html code contains links to boostrap and jquery to perform a search on the page.
Delimiters in braces {% ….%} express instructions (for, if, ..).
Delimiters in braces {{…}} express the variables.
Using a simple wsgi python server named waitress:
To run the application run the following command: python waitress_server.py.
The IP address to be entered in the browser corresponds to the machine where the http server was launched (pc, Windows server, Linux server, ..) A
t this point it is sufficient to type in the browser the address http: // ip_address: 8080 / articles and you will see the final result!
waitress_server.py from waitress import serves import mainapp serve (mainapp.app, host = '0.0.0.0', port = 8080)
Jquery javascript searches all HTML. The boostrap classes make the html page responsive and modern.
… .And now have fun and space for creativity.
If you work with IBM i, I recommend reading this insightful article by Giancarlo Lui: IBM i System Management: Simpler…
In his recent article "RPG Free and option *convert" , Aldo Succi explores the *CONVERT option in the RPG language,…
Updating Java and DCM Certificates for ECB Exchange Rate Retrieval on IBM i In our blog, we have previously discussed…
We are pleased to receive and share this "tip & trick" from Patrick Rizzi, which introduces a technique that allows…
I take inspiration from a response by Michael Mayer on the Midrange.com mailing lists to someone who asked how to…
Businesses are increasingly seeking tools to enhance efficiency, collaboration, and resource management. Enterprise Resource Planning (ERP) systems provide a comprehensive…