我最近开始将 Django 1.5.4 用于带有 MySQL 后端的 Web 应用程序。刚开始,我遇到了某些限制,这让我想知道 Django 是否是前进的正确方式。
一些明显的缺点是:
缺少复合主键。该漏洞已开放 8 年。对于依赖大量多对多表来拥有不必要的自动主键并使用 unique_together 属性的应用程序来说,这不是很糟糕。
参考:
- http://comments.gmane.org/gmane.comp.python.django.devel/37301
-如何删除 Django 中自动生成的 ManyToMany 表中的冗余 ID 字段?
- https://code.djangoproject.com/wiki/MultipleColumnPrimaryKeys#Multi-ColumnPrimaryKeysupport
- https://code.djangoproject.com/ticket/373一些简单的事情,比如在 SQL 模式中表示默认值。我知道他们不修复它的原因,但这让生活变得更加艰难。
参考:
- https://code.djangoproject.com/ticket/470无法声明固定字符字段
参考:
- https://code.djangoproject.com/ticket/9349缺点(引自上述错误报告):在我的特定应用程序中,从 Django 自动生成的 varchar 字段更改为 char 字段将数据库的大小从 550GB 降低到 300GB。在很多情况下,确实需要存储固定长度的字符数据。
主键不能无符号(错误报告已经来回了很长时间)
。这并不难实现。它使可用 ID 加倍。
正如我所说,这只是一个开始。我遇到了一些缺点,让我觉得如果 Django 忽略了这些基本的东西,那么它是否是正确的框架?我想问一下 Django 社区充满了问题,这些问题需要破解其他简单的东西,或者这些只是少数例外?
我正在考虑尝试 Pyramid/Pylons 框架。任何帮助/建议将不胜感激。
更新:增加了 2 个