[mod_python] "TypeError: argument 2 must be a mapping" and other things

Nicolas Lehuen nicolas.lehuen at gmail.com
Wed Sep 21 06:11:08 EDT 2005


Hi Daniel,

Have you read this FAQ ?

http://www.modpython.org/FAQ/faqw.py?req=show&file=faq02.013.htp

Regards,
Nicolas

2005/9/21, Daniel Winkler <mailings at danielwinkler.de>:
> 
> Hi Jorey,
> 
> Am Dienstag, den 20.09.2005, 19:24 -0400 schrieb Jorey Bump:
> > ... and possibly some of the errors you're seeing, as well, for context?
> > Are you sure the arguments referred to are in fact the ones in the
> > query, and not from some other part of the code?
> Okay, I'll try to extract the important parts ...
> 
> index.py: ***********************************
> 
> from mod_python import psp
> import dirigent
> import chor
> [...]
> 
> def startseite(req, chorid=0): #called startseite?chorid=1 or so
> dirigent.id <http://dirigent.id> = dirigent.ermittle_dirigent(req)
> chor.id <http://chor.id> = chor.ermittle_chor(chorid, dirigent.id<http://dirigent.id>
> )
> [...]
> 
> 
> datenbank.py: ********************************
> 
> import MySQLdb
> db = MySQLdb.connect(host="localhost",
> user="chordb",
> passwd="somethingsecret",
> db="chordatenbank")
> 
> 
> chor.py: *************************************
> 
> from datenbank import db
> [...]
> 
> id = 0
> 
> def _acltest_ok(chorID, dirigentID):
> acl = db.cursor()
> (*) acl.execute("SELECT chor FROM acl WHERE chor = %s AND dirigent = %s", 
> (chorID, dirigentID))
> return (int(acl.rowcount) > 0)
> 
> 
> def ermittle_chor(chorID, dirigentID):
> if ( (chorID > 0)
> and _acltest_ok(chorID, dirigentID) ):
> return chorID
> else:
> choere = db.cursor()
> (*) choere.execute("SELECT chor FROM acl WHERE dirigent = %s;", 
> (dirigentID))
> 
> if int(choere.rowcount) == 1:
> chor = choere.fetchone()
> return chor[0]
> else:
> return 0
> 
> 
> The (*) marked lines are those where the error occurs most at the
> moment. E.g.:
> 
> ******************************************
> od_python error: "PythonHandler mod_python.publisher"
> 
> Traceback (most recent call last):
> 
> File "/usr/lib/python2.3/site-packages/mod_python/apache.py", line 299, in 
> HandlerDispatch
> result = object(req)
> 
> File "/usr/lib/python2.3/site-packages/mod_python/publisher.py", line 136, 
> in handler
> result = util.apply_fs_data(object, req.form, req=req)
> 
> File "/usr/lib/python2.3/site-packages/mod_python/util.py", line 361, in 
> apply_fs_data
> return object(**args)
> 
> File "<somewhere>/index.py", line 49, in lied
> chor.id <http://chor.id> = chor.ermittle_chor(chorid, dirigent.id<http://dirigent.id>
> )
> 
> File "<somewhere>/chor.py", line 18, in ermittle_chor
> if ( (chorID > 0)
> 
> File "<somewhere>/chor.py", line 11, in _acltest_ok
> acl.execute("SELECT chor FROM acl WHERE chor = %s AND dirigent = %s", 
> (chorID, dirigentID))
> 
> File "/usr/lib/python2.3/site-packages/MySQLdb/cursors.py", line 132, in 
> execute
> self.errorhandler(self, TypeError, m)
> 
> File "/usr/lib/python2.3/site-packages/MySQLdb/connections.py", line 33, 
> in defaulterrorhandler
> raise errorclass, errorvalue
> 
> TypeError: argument 2 must be a mapping
> *********************************
> 
> The first time I load the page, everything is fine. This error occurs
> after the first or second page reload (same code, same parameters).
> Don't ask me why ...
> 
> I had even more strange errors like "syntax errors" in a line called
> "c = 1" in a PSP file, but I cannot reproduce them at the moment. (maybe
> after the problem above is fixed :-)
> BTW, I am new to Python so if you have additional hints what can be done
> better: everything is welcome.
> Okay, yes, I know that global variables aren't very nice, but I thought
> it is not necessary to build a class just for one object ... ;-)
> 
> 
> TIA
> Daniel
> 
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20050921/83ec8480/attachment-0001.html


More information about the Mod_python mailing list