[Python] congetture su libreria per sql
Manuele Pesenti
amicogodzilla a bruttocarattere.org
Ven 2 Apr 2010 16:57:57 CEST
dopo qualche ricerca aggiuntiva ho avuto qualche idea finora risultata
fallimentare... magari qualcuno sa dirmi perché...
ecco come avrei pensato di agire... immaginando per ora di gestire un db
già pronto
### prevedendo di istanziare un oggetto Table a immagine e somiglianza
### di una mia ipotetica tabella ('users') qui sotto descritta
### dall'istanza users_table
from sqlalchemy import Sequence
from sqlalchemy import *
from sqlalchemy.orm import mapper
users_table = Table('users', metadata,
Column('id', Integer, Sequence('user_id_seq'), primary_key=True),
Column('name', String(50)),
Column('fullname', String(50)),
Column('password', String(12))
)
### se io definisco una mia classe generica in questo modo:
### dove prevedo la variabile myTable come un'istanza della classe Table
### di sqlalchemy (nel nostro caso users_table)
class tableImage(object):
def __init__(self, myTable):
for i in myTable.get_children():
name = i.name
self.__setattr__('name', name)
### questo non sembrerebbe troppo differente dalla definizione
### da tutorial ben più rigida:
class User(object):
def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password
### il problema è che se a questo punto si lancia:
myTableImage = tableImage(users_table)
### fino a qui tutto bene ma se provo a mappare users_table
### su myTableImage ottengo:
mapper(myTableImage, users_table)
Traceback (most recent call last):
File "<console>", line 1, in ?
File
"/apps/zope/plonemanuele/eggs/SQLAlchemy-0.6beta3-py2.4.egg/sqlalchemy/orm/__init__.py", line 814, in mapper
return Mapper(class_, local_table, *args, **params)
File
"/apps/zope/plonemanuele/eggs/SQLAlchemy-0.6beta3-py2.4.egg/sqlalchemy/orm/mapper.py", line 108, in __init__
self.class_ = util.assert_arg_type(class_, type, 'class_')
File
"/apps/zope/plonemanuele/eggs/SQLAlchemy-0.6beta3-py2.4.egg/sqlalchemy/util.py", line 620, in assert_arg_type
raise exc.ArgumentError(
ArgumentError: Argument 'class_' is expected to be of type '<type
'type'>', got '<class '__main__.tableImage'>'
####################################################################
spero con questo esempietto di aver interessato qualcuno al problema
un grazie per l'attenzione
a presto
Manuele
Maggiori informazioni sulla lista
Python