The easiest way to get the Python api running is to use a web framework.
The best one I know for Python is cherrypy. So, let's start this tutorial using cherrypy:
A tutorial for using rialtoPython with TurboGears can be found here (Thanks to Flávio Coelho)
import cherrypy class Window: def index(self): out = '<html><head><title>CherryPy</title></head><body><h1>Hello World</h1></body></html>' return out index.exposed = True cherrypy.root = Window() if __name__ == '__main__': cherrypy.server.start()
from rialtoPython import *
DIV = "document.body" LAYOUT = "ihmDemo" WINDOW = "myWindow" WINDOW_TITLE = "My First Pythonic Rialto Window" FRAME = "boxDemo" FORM = "myForm" URL = "do"
rp = rialtoPython.RialtoPython() out = []
out.append(rp.addImport(devMode=False)) out.append('<script>') out.append('\trialto.I18N.setLanguage("en");\n')
out.append(rp.openLayout(LAYOUT)) out.append(rp.windowTag(WINDOW, WINDOW_TITLE, DIV))
out.append(rp.frameTag(FRAME, '30', '30', '300', '120', 'My 1st python Box', 'true', 'false', 'relative', 'false', WINDOW)) out.append(rp.formTag(FORM,URL,FRAME)) out.append(rp.labelTag('label1', '25', '10', 'Spam', FORM)) out.append(rp.textTag('login', '25', '90', '200', 'A', FORM, 'true', 'true', 'Eggs')) out.append(rp.buttonTag('doLogon', 'Ni!', '70', '10', 'And now to something completely different', ['FORM', FORM], FORM)) out.append(rp.buttonTag('default', 'Camelot!', '70', '100', 'The television reception isnt good here anyway', ['FORM', FORM], FORM))
out.append(rp.closeLayout(LAYOUT)) out.append(rp.init(LAYOUT))
out.append('</head>\n') out.append('<body onLoad="init();">\n</body>\n</html>')
return ''.join(out)
def do(self,login,action): res=rialtoPython.RialtoPython() out=[] error_msg=[] if action=='doLogon': if login=="": error_msg.append("Empty Spam") elif login!="Eggs": error_msg.append("Unknown Spam") if len(error_msg)>0: out.append(res.showAlert('myAlert', ','.join(error_msg))) else: out.append(res.showAlert('myAlert', 'This Spam was good!')) elif action == 'default': out.append(res.showAlert('myAlert', 'Are you sure, you want to go to camelot?')) else: out.append(res.showAlert('myAlert', 'I dont know anything about the action %s' % action)) return ''.join(out)
do.exposed = True
cherrypy.config.update(file = 'project.conf')
[global] server.socketPort = 8080 server.threadPool = 10 server.environment="production" server.logFile="cherry.log" staticFilter.root = "/somewhere/on/your/machine/RialtoDemo" [/rialtoEngine] staticFilter.on=True staticFilter.dir="rialtoEngine" [/config.js] staticFilter.on=True staticFilter.file="config.js" [/rialto.js] staticFilter.on=True staticFilter.file="rialto.js" [/images] staticFilter.on=True staticFilter.dir="images" [/javascript] staticFilter.on=True staticFilter.dir="javascript" [/style] staticFilter.on=True staticFilter.dir="style"
#!/usr/bin/python # -*- coding: ISO-8859-1 -*- import cherrypy from rialtoPython import * class Window: def index(self): DIV = "document.body" LAYOUT = "ihmDemo" WINDOW = "myWindow" WINDOW_TITLE = "My First Pythonic Rialto Window" FRAME = "boxDemo" FORM = "myForm" URL = "do" rp = rialtoPython.RialtoPython() out = [] out.append(rp.addImport(devMode=False)) out.append('<script>') out.append('\trialto.I18N.setLanguage("en");\n') out.append(rp.openLayout(LAYOUT)) out.append(rp.windowTag(WINDOW, WINDOW_TITLE, DIV)) out.append(rp.frameTag(FRAME, '30', '30', '300', '120', 'My 1st python Box', 'true', 'false', 'relative', 'false', WINDOW)) out.append(rp.formTag(FORM,URL,FRAME)) out.append(rp.labelTag('label1', '25', '10', 'Spam', FORM)) out.append(rp.textTag('login', '25', '90', '200', 'A', FORM, 'true', 'true', 'Eggs')) out.append(rp.buttonTag('doLogon', 'Ni!', '70', '10', 'And now to something completely different', ['FORM', FORM], FORM)) out.append(rp.buttonTag('default', 'Camelot!', '70', '100', 'The television reception isnt good here anyway', ['FORM', FORM], FORM)) out.append(rp.closeLayout(LAYOUT)) out.append(rp.init(LAYOUT)) out.append('</head>\n') out.append('<body onLoad="init();">\n</body>\n</html>') return ''.join(out) index.exposed = True def do(self,login,action): res=rialtoPython.RialtoPython() out=[] error_msg=[] if action=='doLogon': if login=="": error_msg.append("Empty Spam") elif login!="Eggs": error_msg.append("Unknown Spam") if len(error_msg)>0: out.append(res.showAlert('myAlert', ','.join(error_msg))) else: out.append(res.showAlert('myAlert', 'This Spam was good!')) elif action == 'default': out.append(res.showAlert('myAlert', 'Are you sure, you want to go to camelot?')) else: out.append(res.showAlert('myAlert', 'I dont know anything about the action %s' % action)) return ''.join(out) do.exposed = True cherrypy.root = Window() if __name__ == '__main__': cherrypy.config.update(file = 'project.conf') cherrypy.server.start()