telethon会话存储的sqlalchemy后端
telethon-session-sqlalchem的Python项目详细描述
由SQLAlchemy支持的Telethon会话存储实现。
用法
这个会话实现可以在同一个数据库中存储多个会话, 但是要做到这一点,每个会话实例都需要访问相同的模型 和数据库会话。
要开始,您需要创建一个AlchemySessionContainer,它将 包含共享数据。使用^{tt1}的最简单方法$ 只需将数据库url传递给它即可:
fromalchemysessionimportAlchemySessionContainercontainer=AlchemySessionContainer('mysql://user:pass@localhost/telethon')
如果已经为自己的项目设置了sqlalchemy,也可以通过 单独使用发动机:
my_sqlalchemy_engine=sqlalchemy.create_engine('...')container=AlchemySessionContainer(engine=my_sqlalchemy_engine)
默认情况下,会话容器将管理表创建/架构更新/etc 自动。如果你想自己管理一切,你可以通过 sqlalchemy会话和declarative_base实例并设置manage_tables 到False:
fromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemyimportormimportsqlalchemy...session_factory=orm.sessionmaker(bind=my_sqlalchemy_engine)session=session_factory()my_base=declarative_base()...container=AlchemySessionContainer(session=session,table_base=my_base,manage_tables=False)
您始终需要向容器提供engine或session。 如果设置manage_tables=False并提供session,则engine不是 需要。在任何其他情况下,engine始终是必需的。
创建AlchemySessionContainer实例后,可以 通过调用new_session:
创建新会话session=container.new_session('some session id')client=TelegramClient(session)
其中some session id是会话的唯一标识符。