几周前,我问了一个问题:“php、python、postgresql设计是否适合非web业务应用程序?”Is a PHP, Python, PostgreSQL design suitable for a business application?
很多答案建议跳过PHP部分,使用Django构建应用程序在探索Django的过程中,我开始质疑我的目标的一个特定方面,以及Django如何在非web业务应用程序中发挥作用。
根据我的理解,django将同时管理视图和控制器,postgresql或mysql将处理数据。但我的目标是清楚地分离这些层,以便数据库、域逻辑和表示都可以在不显著影响其他层的情况下进行更改看起来我只是用django溶液把m和vc层分开。
因此,在Python中用SQL Algimy/ErrxIIR ORM工具,PostgreSQL作为数据库层,然后仍然使用Django或PHP用于表示层,这对我是否有反作用?这是可能的还是纯粹的疯狂?
基本上,我将研究django/php>python/sqlalchemy>postgresql/mysql的体系结构。
编辑:在粉丝们因为我问了一个关于django的问题而生我的气之前,你要意识到:这是个问题,不是指控。如果我知道答案或者有自己的看法,我就不会问了!
最佳答案
你似乎在说,选择django会阻止你以后使用更为异构的解决方案。事实并非如此django在层之间提供了许多有趣的连接,对所有层使用django可以让您利用这些连接。例如,使用django orm意味着您几乎可以免费获得伟大的django管理应用程序。
你可以选择在Django中使用不同的ORM,但是你不能同时获得管理应用程序(例如,通用视图)因此,一个不同的orm会让你从完整的django从上到下倒退一步,但它并不是从其他异构解决方案倒退一步,因为这些解决方案一开始并没有给你带来管理应用的层内好处。
Django不应该因为没有提供一个灵活的架构而受到批评:它和其他任何解决方案一样灵活,如果你选择交换一个层,你就放弃一些Django的好处。
如果选择从django开始,现在就可以使用django orm,然后,如果需要切换,可以切换到sqlalchemy。这将不会比从SQLalchemy开始时不时地转移到其他ORM解决方案更困难。
你还没说为什么要换层。不管怎样,这都是一个痛苦的过程,因为一定有很多代码依赖于当前使用的工具集和库的行为。