@BlackJack: Wo sind die Namen "anders"? In der Klasse wird ein Attribut namens "__maxspeed" definiert, und von außen wird über die Klasse aud das Attribut zugegriffen:
redcar.__maxspeed = 10. Es handelt sich in beiden Fällen um den Namen
__maxspeed?
@Dav1d: Rein gedanklich habe ich Probleme damit, das
Session()-Objekt rumzureichen. Damit wird es mal präsent haben:
Code: Alles auswählen
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
def connect_to_database():
# an Engine, which the Session will use for connection
# resources
some_engine = create_engine('postgresql://scott:tiger@localhost/')
# create a configured "Session" class
Session = sessionmaker(bind=some_engine)
# create a Session
sess = Session()
# Now I'm logged into the MySQL server and
# have a session to call - so in order to manipulate the records later.
def insert_data():
get_my_session = ses.get_session()
myobject = MyObject('foo', 'bar')
get_my_session.add(myobject)
Wir sehen hier, dass der Benutzer mittelst der
connect_to_database()-Funktion anmeldet. Vergessen wir einmal den Moment, dass hier keine Zugangsdaten als Argumente übergeben werden. Nach der Anmeldung habe ich alles erzeugt was ich brauche. Jetzt müsste ich ein
return setzen, um das
Session()-Objekt rumzureichen. Aber wohin? Es kann ja sein, dass der Anwender sich anmeldet, und sagen wir mal 10 Minuten später eine Such-Abfrage startet. Oder das er 5 Minuten später einen Eintrag vornimmt. Hier sehen wir, dass wir die
insert_data()-Funktion haben, falls der Anwender auf den Button "Einfügen" klickt. Aber woher weiß ich was der Anwender nach dem LogIn vorhat? Das Rumreichen der Argumente kann ja nur Sinn ergeben, wenn es eine vorgegebene "Richtung" hat. In meinem Fall bleibt das Handeln des Anwenders nach dem LogIn ein Geheimnis für den Entwickler. Also dachte ich mir, lege ich das
Session()-Objekt erst einmal ab. Und wenn der Anwender sich irgendwann dazu entscheidet einen Datensatz anzuspeichern, dann hole ich mit dieses
Session()-Objekt.