PDA

View Full Version : Lianja 5 and Python



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.

hmischel@diligentsystems.com
2019-04-05, 16:21
Wow - this has incredible possibilities.

I can already think of several ways I can use this.

Thanks Barry!

hmischel@diligentsystems.com
2019-05-08, 08:38
Hi Barry,

I can't overstate how fantastic this is!

If was going to create an installer that included all the python files, would I need to set any type of environment settings?

Thanks

Herb

barrymavin
2019-05-08, 09:36
When you use pip from inside the python console Lianja knows where to run pip from. So no path needed.

Are you talking about desktop distribution?

hmischel@diligentsystems.com
2019-05-09, 09:17
Hi Barry,

yes. I am talking about installing the app on a new clean machine.

Thanks

Herb