【发布时间】:2015-05-05 13:52:05
【问题描述】:
Django 有中间件来实现请求和响应时的操作。 Django是否有“数据库中间件”来实现写入数据和读取数据时做某事。
例如,一些旧的数据库不支持 utf8mb4 ,所以它不能支持所有的表情符号。如果 Django 有“数据库中间件”,我会在保存时对数据进行编码,在读取时进行解码。
【问题讨论】:
-
我不回答你的问题,但也许我可以用另一种方法帮助你。即将推出的 django utf8mb4 encoding with MySQL 5.5 中有一个新功能。与此同时,那里的人们目前正在讨论另一种解决方案。 :)
-
您应该查看django signals。您可以从任何数据库模型调用保存前和保存后的函数,本质上是一个中间件。
-
如果你真的想更深入地实现这个解决方案,也许你可以深入研究他们如何实现DB backend的源代码
-
如果您已经精通 Django,也许这可能会有所帮助。 James Bennett Django in Depth。振作起来,这是 3 小时,但您只需要观看接下来的 1 小时即可解决您的问题。
-
@Yeo 非常感谢~ 可惜我觉得我在 Django 方面做得不好。也许我会在不久的将来阅读它。
标签: python django database middleware django-middleware