【问题标题】:Creating a Python library supporting Django and Pyramid创建一个支持 Django 和 Pyramid 的 Python 库
【发布时间】:2013-01-08 20:49:45
【问题描述】:

我目前有三个记录错误的库。一种用于 Django,一种用于 Pyramid,另一种用于纯 Python。他们目前都有单独的实现来做同样的事情,以特定的方式记录错误和消息。

我想将它们全部整合到一个库中,这样新功能就不必在三个独立的库中重复。用户只需要安装一个库,然后就可以选择是否需要 Django 或 Pyramid 支持。

一种解决方案是将 Django 和 Pyramid 代码粘贴到纯 Python 库中,并让两个 Web 框架共享相同的日志记录代码。另一种解决方案是将 Web 框架保留在单独的库中,但剥离日志实现,并放入普通 Python 库中,使其成为依赖项。

推荐的方法是什么?有没有更好的解决方案?

【问题讨论】:

  • Django 至少使用标准的内置 Python 日志库。为什么你不能使用它?
  • 金字塔也是如此;大概是 OP 在此基础上构建了一些东西?
  • 是的,我的库会获取日志并将它们发送到网络应用等。
  • 我会构建一个包含所有通用代码和定义良好的 API 的基础库,然后围绕它构建轻量级包装器以解决每个框架中的特定问题。无论如何,如果不知道您的库实际做什么,很难说出最好的方法是什么。
  • 拥有包x 和依赖于它的特定于框架的包django-xpyramid_x 是很常见的。

标签: python django shared-libraries pyramid


【解决方案1】:

分解出所有库中通用(并且可以通用)的所有代码。然后,如果需要,创建特定于每个框架的子模块,这些子模块与它们的各种特性和习惯用法相关联。

查看Raven。他们正是这样做的(而且他们也是一个日志发送库!)

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2017-01-16
    • 1970-01-01
    • 2017-01-12
    相关资源
    最近更新 更多