Django 是用于前端还是后端? [关闭]
Posted
技术标签:
【中文标题】Django 是用于前端还是后端? [关闭]【英文标题】:Is Django for the frontend or backend? [closed] 【发布时间】:2012-02-23 06:22:15 【问题描述】:我经常看到有人声称他们的后端是用 Django 实现的,但 Django 不应该用于前端吗?我假设后端指的是前端指表示的业务逻辑。我错过了什么吗?
【问题讨论】:
第一页site告诉你django是什么:一个高级Python Web框架 【参考方案1】:(a) Django 是一个框架,而不是一种语言
(b) 我不确定您缺少什么 - 没有理由不能在 Web 应用程序中包含业务逻辑。在 Django 中,您通常希望表示逻辑与业务逻辑分开。仅仅因为它托管在同一个应用服务器上,并不意味着这两层是纠缠在一起的。
(c) Django 确实提供了模板,但它没有提供丰富的库来生成客户端内容。
【讨论】:
但是如果业务逻辑在 Web 应用程序中(单层架构?),那么前端和后端没有区别,对吧?它只是一个单层。 @Kate:您可以在浏览器中拥有所有表示逻辑,在 django 中间层和数据库层中拥有业务逻辑。你也可以有一个单独的 django 项目来提供后端服务。【参考方案2】:都没有。
Django 是一个框架,而不是一种语言。 Python 是编写 Django 的语言。
Django 是 Python 库的集合,可让您快速高效地创建高质量的 Web 应用程序,并且适用于前端和后端。
然而,Django 以其“Django admin”而闻名,这是一个自动生成的后端,可让您在许多简单的用例中快速管理您的网站,而无需编写太多代码。
更准确地说,对于前端,Django 帮助您进行数据选择、格式化和显示。它具有 URL 管理、模板语言、身份验证机制、缓存挂钩和各种导航工具(例如分页器)。
对于后端,Django 提供了一个 ORM,让您可以轻松地操作数据源,表单(一个独立于 html 的实现)来处理用户输入和验证数据和信号,以及一个观察者模式的实现。加上大量特定于用例的漂亮小工具。
对于 Django 没有帮助的其余后端工作,您只需使用常规 Python。业务逻辑是一个相当宽泛的术语。
您可能还想知道 Django 带有应用程序的概念,这是一个解决问题的自包含可插拔 Django 库。 Django 社区非常庞大,因此有许多应用程序可以执行 vanilla Django 没有的特定业务逻辑。
【讨论】:
如果业务逻辑在三层架构中与表示分离,那么业务逻辑应该没有必要使用Django吧?所有“webby”的东西都只存在于表示层,对吧? @Kate:在 django 中,您希望业务逻辑与表示逻辑分离。 Django 还嵌入了用于业务逻辑的工具:ORM 和表单。您不必使用它们,但如果您这样做,它们将使您的开发速度更快。 @kate,我添加了一些额外的解释。请注意,架构的学术定义对您的帮助不如实际尝试一下。最后,更多的是把事情做好,而不是谈论事情。抽象在你实际使用它们时被清除。【参考方案3】:看来您实际上是在谈论 MVC(模型-视图-控制器)模式,其中逻辑被分成不同的“层”。 Django,作为一个框架,遵循 MVC(松散地)。您拥有包含业务逻辑并直接与数据库中的表相关的模型、实际上充当控制器、处理请求和返回响应的视图,以及处理演示的模板。
Django 不仅仅是其中之一,它还是一个完整的应用程序开发框架,并提供了您为此目的所需的所有工具。
前端与后端都是语义。您可能会构建一个完全“后端”的 Django 应用程序,使用其内置的管理 contrib 包来管理完全独立的应用程序的数据。或者,您可以将其仅用于“前端”,仅使用其视图和模板,但完全使用其他东西来管理数据。大多数情况下,它用于两者。内置管理员(“后端”)提供了一种管理数据的简单方法,您可以在 Django 中构建应用程序以各种方式呈现该数据。但是,如果您愿意,您也可以在 Django 中创建自己的“后端”。您不必使用默认管理员。
【讨论】:
以上是关于Django 是用于前端还是后端? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
您可以使用 Django 框架将 Python 用于前端和后端吗? [关闭]