您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

自定义python数据库记录器,具有循环导入

自定义python数据库记录器,具有循环导入

我只是想出了使用延迟导入实现它的另一种实际上更规范的方法,我最初的问题是试图在 函数中导入模型:

from logging import Handler

class DBHandler(Handler,object):
    model_name = None

    def __init__(self, model=""):
        super(DBHandler,self).__init__()
        self.model_name = model

    def emit(self,record):
        # instantiate the model
        try:
            model = self.get_model(self.model_name)
        except:
            from logger.models import GeneralLog as model

        log_entry = model(level=record.levelname, message=self.format(record))


        log_entry.save()

    def get_model(self, name):
        names = name.split('.')
        mod = __import__('.'.join(names[:-1]), fromlist=names[-1:])
        return getattr(mod, names[-1])
python 2022/1/1 18:37:25 有241人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶