dynamo允许用户和管理员在运行时动态地创建和维护他们的django动态模型。

django-dynamo的Python项目详细描述


dyna mo允许用户和管理员在运行时动态创建和维护他们的djangodynamicmodels。 有关设置和使用的详细信息,请阅读readthedocs上的documentation

为什么你需要一个动态模型?

动态模型对于需要数据结构的应用程序是有益的,这些数据结构只在运行时才知道,但在对应用程序进行编码时不知道。或者现有的模型需要在运行时通过其他字段来扩展。典型的用例是:

  1. cms:在内容管理系统中,用户通常需要维护其特定网站特有的内容。因此,开发人员事先不知道存储和维护此内容所需的数据结构。
  2. web shop:网店的所有者拥有高度定制的产品,具有非常特殊的产品属性。商店开发人员希望web商店所有者自己定义这些属性。
  3. survey:如果您有一个应用程序来创建和维护在线调查,那么在运行时您既不知道问题,也不知道可能的答案,但是让您的用户在执行调查时定义这些问题。

dynamo支持这三个用例——还有更多!

发电机是怎么工作的?

dynamo允许您为模型定义其字段的元数据。此元数据定义存储在“real”django模型中。然后在运行时创建定义的模型。当然,以后也可以修改模型,例如添加、重命名或删除字段;或更改模型属性。它还将自动管理动态模型的管理员和应用程序缓存。元数据维护可以通过django管理员或提供的api来完成。

还有什么?

django开发人员可以使用各种方法和实现:

  • 最直接的方法是使用django内部组件及其db api在运行时创建和维护模型。许多作者在Django Wiki中阐述了这个选项。迈克尔·霍尔(michael hall)按照这种方法创建了一个app;他还调用了dynamo,我希望这不会造成太多混乱。
  • Entity-Attribute-Value/eav模型是解决这类问题的传统计算机科学方法,也有类似于django-eaveav-django的django实现。
  • 最后,will hardy引入了一个基于South的概念,他在DjangoCon Europe 2011中提出并讨论了这个概念。遵循这个概念,他实现了dynamic-models

基于南部的方法似乎是最干净的,并且明显遵循了dry方法:所有的数据库处理、维护和事务都留给了优秀的south api。

还有谁能得到迪纳摩的学分?

迪纳摩的灵感来自威尔·哈代的优秀作品dynamic-models和这个Django Wiki Article。它还重新使用了它们的部分概念和编码。 此外,south用于维护与dyanmo相关的数据库对象。

迪纳摩在哪个许可证下可用?

发电机在BSD license下可用。

我如何得到支持?

readthedocs上的在线documentation是一个很好的开始。如果您有任何进一步的问题,问题或想贡献,请让我们知道在Dynamo Google Group

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
maven通过pom文件增加最大java堆大小   java如何在Kojo IDE输出窗格中打印到同一行?   如何使用特定的JRE交付Java应用程序?   java Cordova插件调用日志找不到符号   Java上Redis哈希中的spring列表   java ThreadSafeClientConnManager不是多线程   java如何在激活器中获取IEclipseContext   java如何通过编程更改除法器偏差   在中找不到maven Java/Mvn本地资源。罐包装   JOptionPane的java用户输入验证。showInputDialog   java编辑:如何更改日期对象的日期格式?   文件编写器Java;如何覆盖   一行中包含多个值的java读取属性   java如何在安卓中使用截击上传视频