From: <mic...@em...> - 2004-04-26 14:14:39
|
Hi there, I am trying to integrate some database data into the spyce examples : I am having the following exception : Spyce exception File: /home/lvmbi/public_html/dbapp/table.spy Message: TypeError: error() takes exactly 1 argument (3 given) Stack: table.spy:13, in (main): data = use_pymodel.getLondoners () /home/lvmbi/public_html/dbapp/use_pymodel.py:17, in getLondoners: in_london=ec.fetch('Person', 'addresses.town ilike "*london*"') /usr/lib/python2.3/site-packages/Modeling/EditingContext.py:1412, in fetch: qualifier=qualifierWithQualifierFormat(qualifier) /usr/lib/python2.3/site-packages/Modeling/Qualifier.py:130, in qualifierWithQualifierFormat: return QualifierParser.qualifierWithQualifierFormat(expression) /usr/lib/python2.3/site-packages/Modeling/QualifierParser.py:549, in qualifierWithQualifierFormat: sc=scan(strIO) /usr/lib/python2.3/site-packages/Modeling/QualifierParser.py:250, in scan: return scanner.tokenize(input) /usr/lib/python2.3/site-packages/Modeling/QualifierParser.py:142, in tokenize: GenericScanner.tokenize(self, input) /usr/lib/python2.3/site-packages/spark.py:72, in tokenize: self.error(s, pos) The code used is as follows (as in the examples but with database contents): *** use_pymodel.py **** from Sample import Person from Modeling.EditingContext import EditingContext def foo (): data = [ [ 'USA', '9,158,960', '280,562,489', '$36,300' ], [ 'Canada', '9,220,970', '31,902,268', '$27,700' ], [ 'Mexico', '1,923,040', '103,400,165', '$9,000' ], ] return data def getLondoners (): ec=EditingContext() in_london=ec.fetch('Person', 'addresses.town ilike "*london*"') # in_london=ec.fetch('Person') ret = [] for p in in_london: dict = {} for key in p.attributesKeys (): dict[key] = p.valueForKey (key) ret.append (dict) return ret if __name__ == "__main__": foo() print getLondoners () *** table.spy **** **** As the example **** [[ import use_pymodel # table template table = [[spy! title, data: <table> <tr> [[for cell in title: {]] <td><b>[[=cell]]</b></td> [[}]] </tr> [[for row in data: {]] <tr> [[for cell in row: {]] <td>[[=cell]]</td> [[}]] </tr> [[}]] </table> ]] # table information title = ['Country', 'Size', 'Population', 'GDP per capita'] use_pymodel.foo () data = use_pymodel.getLondoners () # data = use_pymodel.foo () ]] [[-- emit web page --]] <html><body> [[ table(title, data) ]] </body></html> .oO (!Strange) The module runs like a charme if started from the commandLine. Even If a dont use the WHERE Klause all Values from the database are displayed. I think it is somehow related to the spyce compilation. Cause If i use fetch ('Person') it works fine. But fetch ('Person', 'addresses.town ilike "*london*"') results in the spyce Exception. Maybe somebody knows whats going on. I am currently evaluating some stuff. The strength of python together with some WebStuff/Database would be fantastic. Regards Michael |