SQLObject... Kleines Beispiel geht schon nicht...

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

SQLObject... Kleines Beispiel geht schon nicht...

Beitragvon jens » Sonntag 27. November 2005, 13:54

Ich möchte mir mal SQLObject anschauen... Aber die Beispiele auf der Seite machen immer ein from sqlobect import * Das ist doch aber doof...

Deswegen hab ich mal versucht das kleine Beispiel zu ändern:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sqlobject

connection = sqlobject.connectionForURI('sqlite:/tmp/test.db')
sqlobject.processConnection = connection

class Person(sqlobject.SQLObject):
   fname = sqlobject.StringCol()
   mi = sqlobject.StringCol(length=1, default=None)
   lname = sqlobject.StringCol()

Person.createTable()


Allerdings geht's so nicht:

Code: Alles auswählen

Traceback (most recent call last):
  File "test1.py", line 17, in ?
    Person.createTable()
  File "/usr/lib/python2.4/site-packages/sqlobject/main.py", line 975, in createTable
    cls._connection.createTable(cls)
AttributeError: 'NoneType' object has no attribute 'createTable'


EDIT: Hier gibt es ein paar Beispiele: http://www-128.ibm.com/developerworks/l ... ythonsqlo/
Aber da wird ein "from Connection import conn" gemacht, welches bei mir nicht geht, da Connection nicht existiert?!?!

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Sonntag 27. November 2005, 14:19

So geht's, bis zum select:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sqlobject

connection = sqlobject.connectionForURI('sqlite:///tmp/test.db')
sqlobject.SQLObject._connection = connection

class Person(sqlobject.SQLObject):
    fname = sqlobject.StringCol()
    mi = sqlobject.StringCol(length=1, default=None)
    lname = sqlobject.StringCol()

Person._connection.debug = True

print "createTable:"
Person.createTable(ifNotExists=True)

print "create Person1:"
Person(fname='Bob', lname='Hope')

print "get Person 1"
p1 = Person.get(1)
print p1

p1.mi = "middleInitial"
print p1

print "create Person2:"
Person(fname='Joe', mi='middleInitial', lname='Dope')

peeps = Person.select(Person.q.mi='middleInitial')
print peeps

Code: Alles auswählen

>python -u test1.py
  File "test1.py", line 32
    peeps = Person.select(Person.q.mi='middleInitial')
SyntaxError: keyword can't be an expression

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

Beitragvon raist1314 » Dienstag 29. November 2005, 07:46

jens hat geschrieben:So geht's, bis zum select:

Code: Alles auswählen

peeps = Person.select(Person.q.mi='middleInitial')
print peeps


Was soll das q in Person.q.mi ???

Sebastian
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 29. November 2005, 07:59

Das weiß ich auch nicht, hab ich aus dem Beispiel http://www-128.ibm.com/developerworks/l ... ythonsqlo/ und konnte auch nicht nachvollziehen woher q kommt...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

Beitragvon raist1314 » Dienstag 29. November 2005, 12:26

Habs gefunden... q deutet wohl auf einen Query unter Einbeziehung der Spalte hin.

Code: Alles auswählen

# dein beispiel klappt nicht
peeps = Person.select(Person.q.mi='middleInitial')

# ich nehme an, du wolltest das
peeps = Person.select(Person.q.mi == 'middleInitial')
print peeps


Gruss

Sebastian

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder