피라미드 프레임 워크 인증 addon/Plugin을 만들려고합니다. 플러그인에는 사용자 로그인 및 기타 데이터를 저장하는 데이터베이스가 있어야하므로 사용자가 내 추가 기능을 사용하는 경우 데이터베이스에 추가 기능의 특정 테이블/모델이 있어야합니다. 예를 들어피라미드 프레임 워크 (메인 애플리케이션에 애드온의 models.py 포함)
class User(Base):
__tablename__ = 'User'
id = Column(Integer, primary_key=True)
username = Column(Text())
user_firstname = Column(Text())
user_lastname = Column(Text())
user_email = Column(Text())
user_password = Column(Text())
user_registrationdate = Column(DateTime())
user_email_key = Column(Text())
user_email_key_date_created = Column(DateTime())
user_email_approved = Column(Boolean())
user_email_sent = Column(Boolean())
user_active_account = Column(Boolean())
user_banned = Column(Boolean())
user_banned_reason = Column(Text())
나는이 모델은 사용자의 주요 응용 프로그램에 포함해야이 사용자 테이블, 내가 추측하고 난
def includeme(config):
config.include('pyramid_mako')
config.add_route('pyramid.admin', '/pyramid/admin')
#static views
config.add_static_view('assets', 'pyramidadmin:static/assets/')
config.scan('pyramidadmin.views')
아래에 표시 내 includeme에서 뭔가를 포함해야하지만 난 아무 생각이 무엇인지 할 것. 기본 응용 프로그램의 기본에 내 addon에서 DBSession과 Base를 병합 할 수있는 방법이 있습니까? ../bin/initialize_myapp_db
myaddon의 테이블과 기본 응용 프로그램 모두가 모두 만들어 지도록하려면?
import sqlalchemy
import sqlalchemy.orm as orm
from zope.sqlalchemy import ZopeTransactionExtension
from sqlalchemy.ext.declarative import declarative_base
DBSession = None
def get_sa_base(engine):
sabase = sqlalchemy.ext.declarative.declarative_base()
sabase.metadata.reflect(engine)
return sabase
def includeme(config):
global DBSession
engine = sqlalchemy.engine_from_config(config.registry.settings)
if DBSession is None:
DBSession = orm.scoped_session(
orm.sessionmaker(extension=ZopeTransactionExtension()))
DBSession.remove()
DBSession.configure(bind=engine)
Base = get_sa_base(engine)
# example:
Base.metadata.tables.values()
예
는 here을 찾을 수 있습니다