barrymavin
2019-03-31, 01:27
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.
1882
You can now choose to develop a WebView renderer in Lianja/VFP, JavaScript, Python or PHP.
1883
One click editing of WebView renderer code.
1884
1881
And here is the Python code. Note how you have full access to the Lianja data access classes.
<%@ 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.
1885
So as you can see Python can now be used in Web/Mobile Apps.
Enjoy.
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.
1882
You can now choose to develop a WebView renderer in Lianja/VFP, JavaScript, Python or PHP.
1883
One click editing of WebView renderer code.
1884
1881
And here is the Python code. Note how you have full access to the Lianja data access classes.
<%@ 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.
1885
So as you can see Python can now be used in Web/Mobile Apps.
Enjoy.