Thread: [SQLObject] specifying a connection object at runtime.
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Markus J. <mar...@ya...> - 2004-09-21 20:33:59
|
Hola I have another SQLObject question. this is my code: --- from sqlobject import * class Author(SQLObject): firstName = StringCol() lastName = StringCol() class AuthorTable: def __init__(self, connection): Author._connection = connection Author.createTable(ifNotExists=True) def createAuthorTable(connection): AuthorTable(connection) createAuthorTable(connectionForURI('mysql://markus:eagle@localhost/books')) a1 = Author(firstName = "J.R.R.", lastName = "Tolkien") ---- the reason for this is that I want a generic modul about authors and I want to specify the connection Object at runtime, for example when I want to use PostgreSQL. the code works but I would like to know if it has any flaws I do not see. the reason for my question is, that I am preparing an article about Object Relational Mapping in Python for a german magazine. and the main focus will be on SQLObject with 2 or 3 simple Examples. I really like SQLObject and maybe the article helps to get more people interested in SQLObject. and I do not want to have any serious errors in my examples. thanks regards Markus > > ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 100MB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de |
From: Ian B. <ia...@co...> - 2004-09-21 21:25:25
|
Markus Jais wrote: > Hola > > I have another SQLObject question. > > this is my code: > --- > from sqlobject import * > > class Author(SQLObject): > > firstName = StringCol() > lastName = StringCol() > > class AuthorTable: > > def __init__(self, connection): > Author._connection = connection > Author.createTable(ifNotExists=True) > > > def createAuthorTable(connection): > AuthorTable(connection) > > > > createAuthorTable(connectionForURI('mysql://markus:eagle@localhost/books')) > > a1 = Author(firstName = "J.R.R.", lastName = > "Tolkien") Yes, this is fine -- you can assign to ._connection as you set up the classes. The AuthorTable class seems a little odd to me -- I'd probably do it more like: tableClasses = [Author] def createTables(connection): for tableClass in tableClasses: tableClass._connection = connection tableClass.createTable(ifNotExists=True) But maybe that's just a matter of taste. > the reason for this is that I want a generic modul > about authors and I want to specify the connection > Object at runtime, for example when I want > to use PostgreSQL. > > the code works but I would like to know > if it has any flaws I do not see. > > the reason for my question is, that I am > preparing an article about Object Relational Mapping > in Python for a german magazine. and > the main focus will be on SQLObject with 2 or > 3 simple Examples. > I really like SQLObject and maybe the article > helps to get more people interested in SQLObject. > and I do not want to have any serious errors > in my examples. Cool, if you want to run any other scripts by, please do. -- Ian Bicking / ia...@co... / http://blog.ianbicking.org |
From: <pa...@su...> - 2004-09-22 08:47:50
|
Ian Bicking wrote: >> class AuthorTable: >> >> def __init__(self, connection): >> Author._connection =3D connection >> Author.createTable(ifNotExists=3DTrue) =20 >> >> def createAuthorTable(connection): >> AuthorTable(connection) >> =20 >> createAuthorTable(connectionForURI('mysql://markus:eagle@localhost/boo= ks'))=20 >> >> >> a1 =3D Author(firstName =3D "J.R.R.", lastName =3D >> "Tolkien") >=20 >=20 > Yes, this is fine -- you can assign to ._connection as you set up the=20 > classes. The AuthorTable class seems a little odd to me -- I'd probabl= y=20 > do it more like: This strikes me too. At first I also made those ...Table: classes but=20 discovered there is no real use for them since the SQLObject classes are=20 the tables themselves. It is very strange at first not to have a=20 distinct object for "tables". It would be nice to address this issue in=20 the article since it illustrates the (to be changed) object vs.=20 relational mindset (Markus?). just my 0.02=80 Paul |
From: Markus J. <mar...@ya...> - 2004-09-24 18:17:50
|
On Wed, 2004-09-22 at 10:47, paul k=F6lle wrote: > Ian Bicking wrote: > >> class AuthorTable: > >> > >> def __init__(self, connection): > >> Author._connection =3D connection > >> Author.createTable(ifNotExists=3DTrue) =20 > >> > >> def createAuthorTable(connection): > >> AuthorTable(connection) > >> =20 > >> createAuthorTable(connectionForURI('mysql://markus:eagle@localhost/boo= ks'))=20 > >> > >> > >> a1 =3D Author(firstName =3D "J.R.R.", lastName =3D > >> "Tolkien") > >=20 > >=20 > > Yes, this is fine -- you can assign to ._connection as you set up the=20 > > classes. The AuthorTable class seems a little odd to me -- I'd probabl= y=20 > > do it more like: > This strikes me too. At first I also made those ...Table: classes but=20 > discovered there is no real use for them since the SQLObject classes are=20 > the tables themselves. It is very strange at first not to have a=20 > distinct object for "tables". It would be nice to address this issue in=20 > the article since it illustrates the (to be changed) object vs.=20 > relational mindset (Markus?). I think I will mention this in the article.=20 this was just an example how it could be done. in the end=20 the read will have to decide for herself/himself if she/he wants to do it this way. this also depends on the application of the reader. thanks for your comments. I will inform you when the article is published, but this will probably not happen before 2005. Markus >=20 > just my 0.02=A4 > Paul >=20 >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 > Project Admins to receive an Apple iPod Mini FREE for your judgement on > who ports your project to Linux PPC the best. Sponsored by IBM. > Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php > _______________________________________________ > sqlobject-discuss mailing list > sql...@li... > https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss |