django模型字段设计用于更精确和语义上定义数据类型。

django-forcedfields的Python项目详细描述


摘要

一个python模块,提供一组自定义的、专门的django模型字段。

虽然我已经和django的orm一起工作了一段时间,并且喜欢它的许多特性 简单的用例,我发现自己越来越被它的局限性所阻碍、恼怒和不满 在复杂的应用中。在我看来,一个突出的问题是orm缺少语义数据库字段 数据类型和修改器。

例如,一个八个字符的varchar字段,可以为空,其默认值为 "elegy"不会导致mysql的ddl:

VARCHAR(8) DEFAULT 'elegy' NULL

但简单地说:

VARCHAR(8) NULL

虽然这个varchar示例可能不是最令人震惊的,但是它说明了 完全依赖应用程序及其orm来处理应该处理的行为,实际上 最好由数据库管理系统自己处理。

数据库应该尽可能自文档化和语义化,独立于任何应用程序 代码、orm模型或文档。我不会为了一个ORM而妥协这个原则 方便。为此,我已经开始创建这些自定义django模型字段来强制django 发出尽可能具体和完整的ddl语句。这是我的目标和未来 尽可能将职责从应用程序orm转移到基础数据库的字段 同时保持一致和完整的orm接口和数据库后端抽象。

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

推荐PyPI第三方库


热门话题
NetBeans中的Java Swing滚动窗格   java如何与具有复合键的表建立关系?   Android中读取文件时java数据丢失   java黄瓜场景。embed在ubuntu机器上不工作?   java从spring mvc控制器操作中,我如何获得请求/响应的访问权限?   java减去两个长值   java选择下一个值firebase 安卓   用于起始和结尾连字符的java正则表达式   Java正则表达式解释   java Lifefay freemarker ADT:方法不可用?   java我怎样才能让我的开关盒作用于JFrame?   java在我的场景中使用连接池的理想方式是什么   java我如何接受jsoup的cookies?   java如何将整数数组更改为字符串数组?   java Android操作\u指针\u向上直到剩余触摸移动时才调用   java为什么gradle会出错?   io如何在java中复制/拆分输入流?   java使JButton不可见,但尊重其原始空间   java Spring提交表单获取复选框值不起作用