gpt4 book ai didi

python - Django 开发是否提供真正灵活的 3 层架构?

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:34 25 4
gpt4 key购买 nike

几周前我问了这个问题“PHP、Python、PostgreSQL 设计是否适合非网络业务应用程序?” Is a PHP, Python, PostgreSQL design suitable for a business application?

许多答案建议跳过 PHP 部分并使用 Django 构建应用程序。当我探索 Django 时,我开始质疑我的目标的一个特定方面,以及 Django 如何在非网络业务应用程序中发挥作用。

根据我的理解,Django 将管理 View 和 Controller 部分,而 PostgreSQLMySQL 将处理数据。但我的目标是清楚地分离这些层,以便数据库、域逻辑和表示可以各自更改而不会显着影响其他层。看起来我只是使用 Django 解决方案将 M 层与 VC 层分开。

那么,对于我来说,使用 SQL Alchemy/Elixir ORM 工具PostgreSQLPython 中构建域层是否适得其反?数据库层,然后仍然使用 DjangoPHP 作为表示层?这是可能的还是纯粹的精神错乱?

基本上,我会查看 Django/PHP > Python/SQLAlchemy > PostgreSQL/MySQL 的架构。

编辑:在粉丝们因为我问了一个关于 Django 的问题而生我的气之前,请意识到:这是一个问题,而不是一个指责。如果我知道答案或有自己的看法,我就不会问了!

最佳答案

您似乎是在说选择 Django 会阻止您以后使用更异构的解决方案。事实并非如此。 Django 在层之间提供了许多有趣的连接,对所有层使用 Django 可以让您利用这些连接。例如,使用 Django ORM 意味着您几乎可以免费获得出色的 Django 管理应用程序。

您可以选择在 Django 中使用不同的 ORM,只是不会同时获得管理应用程序(或通用 View )。因此,不同的 ORM 使您从完整的 Django 自上而下倒退了一步,但这并不是其他异构解决方案的倒退,因为这些解决方案首先没有为您提供管理应用程序的层内优势.

Django 不应该因为没有提供灵活的架构而受到批评:它与任何其他解决方案一样灵活,如果您选择交换一个层,您只是放弃了一些 Django 的好处。

如果你选择从Django开始,你现在可以使用Django ORM,以后如果你需要切换,你可以切换到SQLalchemy。这不会比现在开始使用 SQLalchemy 然后再转向其他 ORM 解决方案更困难。

您还没有说明为什么您预计需要交换图层。无论如何,这都将是一个痛苦的过程,因为必然有很多代码依赖于您当前使用的任何工具集和库的行为。

关于python - Django 开发是否提供真正灵活的 3 层架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com