我经常看到有人声称他们的后端是在Django中实现的,但是Django不应该用于前端吗?我假设后端是指前端引用表示的业务逻辑。我错过了什么吗?
答案 0 :(得分:54)
都不是。
Django是一个框架,而不是一种语言。 Python是编写Django的语言。
Django是Python库的集合,允许您快速有效地创建高质量的Web应用程序,并且适用于前端和后端。
然而,Django以其“Django admin”而闻名,它是一个自动生成的后端,允许您在很多简单的用例中眨眼管理您的网站,而无需编写太多代码。
更准确地说,对于前端,Django可以帮助您进行数据选择,格式化和显示。它具有URL管理,模板语言,身份验证机制,缓存挂钩和各种导航工具,如分页器。
对于后端,Django带有一个ORM,可让您轻松操作数据源,表单(HTML独立实现)来处理用户输入并验证数据和信号,这是观察者模式的实现。加上大量用例特定的漂亮小工具。
对于Django没有帮助的所有其余后端工作,您只需使用常规Python。业务逻辑是一个相当广泛的术语。
你可能也想知道Django带有app的概念,一个自包含可插拔的Django库来解决问题。 Django社区非常庞大,因此有许多应用程序可以执行特定的业务逻辑,而香草Django则没有。
答案 1 :(得分:6)
看起来你真的在谈论MVC(模型 - 视图 - 控制器)模式,其中逻辑被分成各种“层”。 Django作为一个框架,遵循MVC(松散地)。您的模型包含您的业务逻辑,并直接与数据库中的表相关,实际上与控制器一样的视图,处理请求和返回响应,最后是处理表示的模板。
Django不仅仅是其中之一,它是一个完整的应用程序开发框架,并提供了为此目的所需的所有工具。
Frontend vs Backend是所有语义。您可以构建一个完全“后端”的Django应用程序,使用其内置的admin contrib包来管理完全独立的应用程序的数据。或者,您可以将它仅用于“前端”,只使用其视图和模板,但完全使用其他东西来管理数据。最常见的是,它用于两者。内置管理员(“后端”)提供了一种简单的方法来管理数据,并在Django中构建应用程序以各种方式呈现数据。但是,如果你如此倾向,你也可以在Django中创建自己的“后端”。您不必被迫使用默认管理员。
答案 2 :(得分:3)
(a)Django是一个框架,而不是一种语言
(b)我不确定您缺少什么 - 没有理由说您不能在Web应用程序中拥有业务逻辑。在Django中,您通常希望表示逻辑与业务逻辑分离。仅仅因为它托管在同一个应用程序服务器中,它并不意味着两个层被纠缠在一起。
(c)Django确实提供了模板,但它没有提供丰富的库来生成客户端内容。