モジュールにこれUserがあるとしましょう。これをより大きなアプリケーションの一部としてuser.py使用します。メイン アプリケーション モジュールで (データベース接続)Userを構成します。Engineしかし...
User.fooまたはを使用する必要がある場合はどうなりますEngineかSession? たとえば、データベースにユーザー ID を受け取る関数があり、その関数を内部で呼び出したいとしますfoo。そのためには、Engine.executeorを使用する必要がありSession.executeます。EngineorSessionはまだ作成されていません。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
fullname = Column(String)
password = Column(String)
def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password
def foo(self, bar):
"""I need an Engine or Session!"""
pass #....
def __repr__(self):
return "<User('%s','%s', '%s')>" % (self.name, self.fullname, self.password)