python - Django - 后端逻辑与数据库逻辑

标签 python mysql django django-models django-rest-framework

我想知道在 MySQL 数据库中使用一些逻辑(触发器等)而不是在 Django 后端中使用逻辑是否是一个好习惯。我知道某些功能可以在后端和数据库中完成,但我想按照良好实践来完成。我不确定我应该手动做一些事情,或者整个数据库应该由 Django 生成(是否可能)?尽可能做到这一点的最佳规则是什么?想请教一下有经验的人的意见。

最佳答案

确实,如果您将数据库用于业务逻辑,您可以获得最大可能的性能和安全性优化。但是,您也会冒很多风险,例如

  • 没有关注点分离
  • 受数据库供应商约束
  • 等等

此外,您在数据库中编写的任何逻辑都不会受到应用程序的版本控制。因此,每当您更改数据库时,您都必须再次创建所有这些内容。

相反,请使用 Django ORM。它将根据您的模型自行创建和管理您的数据库。因此,每当您重新创建数据库时,您只需使用一个命令运行迁移即可完成。

这将涵盖大多数情况。无论何时您需要存储过程的速度,Django ORM 都能满足您的需求。

简而言之,我认为业务逻辑应尽可能远离数据库。

关于python - Django - 后端逻辑与数据库逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353532/

相关文章:

python - 如何在Python中使用subprocess.call杀死一个调用的子进程?

python - 删除txt文件中的换行符

python - 火车测试拆分 scikit-learn 的问题

javascript - 在 sonarqube 4.5.1 上获取 "exception clearing maxRows/queryTimeout"

python - 如何在 Django Admin 中分离对象?

javascript - 即使在 httpOnly 标志设置为 false 的开发人员工具中列出了 cookie,访问 document.cookie 也会返回空字符串

Python正则表达式解析并放入多维列表

mysql - 如何在临时内保存mysql存储过程的结果

mysql - 在 NodeJS 中读取存储在磁盘中的 .sql 数据库作为文件

django - 如何为谷歌表单等字段设计数据库?