There are some significant improvements to Python integration in Lianja 5.
You can now write server-side python pages that execute in both the desktop and web.
I have also integrated package management using pip (from https://pypi.org). You can type pip commands in the Python tab of the console to install and/or manage python packages that you want to use in your Apps.
A picture says a thousand words.
You can now choose to develop a WebView renderer in Lianja/VFP, JavaScript, Python or PHP.
One click editing of WebView renderer code.
And here is the Python code. Note how you have full access to the Lianja data access classes.
Code:
<%@ Language=Python %>
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<link rel='stylesheet' href='../../library/bootstrap/css/bootstrap.min.css' type='text/css'/>
<link rel='stylesheet' href='../../library/bootstrap-3.3.4/css/bootstrap.min.css'>
<script src='../../library/jquery-1.10.2/jquery-1.10.2.min.js' type='text/javascript'></script>
<script src='../../library/bootstrap-3.3.4/js/bootstrap.min.js' type='text/javascript'></script>
<style>
.tablecaption { background: gray; font-weight: bold; color: white; text-align:center; }
</style>
</head>
<body style="margin:10px;">
<%
import Lianja
# open the southwind database
db = Lianja.openDatabase("southwind")
# open a recordset
rs = db.openRecordSet("select * from example")
# main table
print "<table class='table'>"
print "<caption class=\"tablecaption\"> Example Python Report using bootstrap</caption>"
# column headings
rs.movefirst()
print "<tr bgcolor=\"lightgray\" class=\"smallfont\">"
for j in range( rs.fcount() ):
print "<th><font color=\"white\">" + rs.fields(j).name + "</font></th>"
print "</tr>"
# Traverse the recordset and write the output into the Webview section.
for i in range( rs.reccount() ):
if ((i%2) == 0):
rowcolor = "#f1f6fe"
altcolor = "#FFFFFF"
else:
rowcolor = "#FFFFFF"
altcolor = "#f1f6fe"
print "<tr bgcolor=\"" + rowcolor + "\" color=\"darkgray\" class=\"smallfont\" valign=top>"
for j in range( rs.fcount() ):
if rs.fields(j).name in [ "LIMIT", "BALANCE", "AVAILABLE" ]:
print "<td align=right>$%.2f</td>" % rs.fields(j).value
else:
print "<td>%s</td>" % rs.fields(j).value
print "</tr>"
rs.movenext()
# end of table
print "</table>"
# Close the RecordSet
rs.close()
%>
</body>
</html>
Let's run that in the Web and see how it looks.
So as you can see Python can now be used in Web/Mobile Apps.
Enjoy.
Bookmarks