【问题标题】:web presenting framework for SQLObject/SQLAlchemy projectsSQLObject/SQLAlchemy 项目的 Web 呈现框架
【发布时间】:2011-09-17 22:16:26
【问题描述】:
我正在寻找基于 SQLObject 或 SQLAlchemy 的非 Web 项目的最优雅方式,并将其覆盖在一个体面的 Web 框架上。
我查看了Turbogears,尽管它看起来像是我可以使用的东西,但模型似乎必须在 Turbogears 框架内定义。我希望将核心功能(模型、代码)和呈现层(turgbogears,?)分开。
我需要一些可以从我现有的代码库中获取模型并帮助呈现数据而没有太多麻烦的东西。
【问题讨论】:
标签:
python
sqlalchemy
turbogears2
sqlobject
【解决方案1】:
对于这种事情,你可以看看Pyramid。它非常灵活,因为它不强制执行任何特定的组件组(模板、数据库引擎等)。您可以将它与 SqlObject 或 SqlAlchemy 一起使用 - 您可以根据需要对其进行配置。幸运的是,它也有很好的记录。
有一些 Pyramid recipes 用于设置 SqlAlchemy 以及一些基于 Pyramid 构建的框架,这些框架添加了包括 SqlAlchemy 在内的预配置默认值:Akhet 和 Kufu。
【解决方案2】:
大多数 Web 框架都试图成为满足您所有 Web 应用程序需求的一站式商店,以不同程度的紧耦合或松耦合。也就是说,python 就是 python,Web 框架无法阻止您以自己的方式使用它。只需选择适合您需求的框架,并在您需要的地方使用现有的库。
更具体的答案需要更具体的问题形式:
“如何使用现有的 Y in Z 框架执行 X?这是我尝试时发生的情况:[此处的错误消息]”
【解决方案3】:
实际上,在涡轮齿轮箱中有一种简单的方法可以做到这一点。
使用 autoload:true 将表重新绑定到现有的 sqlalchemy 模式没有问题 - 比如shown here。并将您的方法和代码移动到控制器/模型中并不是一件麻烦事,并为您提供所有涡轮齿轮的动力
实际上,您还可以在 config/app_cfg.py 中包含类似以下代码的内容:
from mycode import mymethod
base_config.call_on_startup = [mymethod]