我正在创建一个包含 Bot 类的库。我希望它能够在小马 orm 的帮助下将消息日志和其他一些信息存储在 sql 数据库中。想法是让机器人接受数据库的路径并创建它或连接到它(如果它已经存在)。
可悲的是,似乎使用小马我只能在创建数据库对象后定义类,需要从 database.Entity 类继承才能将我的类绑定到数据库。
明显的解决方案是在创建数据库之后在Bot类构造函数中定义所有类,但是从结构上看,它看起来很丑陋,因为我计划这些类很大,并且想将它们存储在单独的文件中。
其他假设的方法是执行以下操作(但我不知道是否支持该功能):
from pony import orm
class Message(orm.Entity):
text = orm.Required(unicode)
class Database(orm.Database):
def __init__(self, path):
# super(..).__init__(..)
# bind Message to self
class Bot(object):
def __init__(self, path):
self.database = Database(path)
另一种可能的假设方式是,如果我可以从 Database.Entity 继承。
有任何想法吗?也许我可以使用 SQLAlchemy 等其他 ORM 来实现这一点?