Django是前端还是后端?

Kar*_*Kar 31 python architecture django

我经常看到人们声称他们的后端是在Django中实现的,但Django不应该是为了前端吗?我假设后端是指前端引用表示的业务逻辑.我错过了什么吗?

e-s*_*tis 57

都不是.

Django是一个框架,而不是一种语言.Python是编写Django的语言.

Django是Python库的集合,允许您快速有效地创建高质量的Web应用程序,并且适用于前端和后端.

然而,Django以其"Django admin"而闻名,它是一个自动生成的后端,允许您在很多简单的用例中眨眼管理您的网站,而无需编写太多代码.

更准确地说,对于前端,Django可以帮助您进行数据选择,格式化和显示.它具有URL管理,模板语言,身份验证机制,缓存挂钩和各种导航工具,如分页器.

对于后端,Django带有一个ORM,可让您轻松操作数据源,表单(HTML独立实现)来处理用户输入并验证数据和信号,这是观察者模式的实现.加上大量用例特定的漂亮小工具.

对于Django没有帮助的所有其余后端工作,您只需使用常规Python.业务逻辑是一个相当广泛的术语.

您可能也想知道Django带有应用程序的概念,一个自包含可插入的Django库来解决问题.Django社区是巨大的,因此有许多应用程序执行特定的业务逻辑,而香草Django没有.


Chr*_*att 8

看起来你实际上在谈论MVC(模型 - 视图 - 控制器)模式,其中逻辑被分成各种"层".Django作为一个框架,遵循MVC(松散地).您的模型包含您的业务逻辑并直接与数据库中的表相关,实际上与控制器一样的视图,处理请求和返回响应,最后是处理表示的模板.

Django不仅仅是其中之一,它是一个完整的应用程序开发框架,并提供了为此目的所需的所有工具.

前端vs后端是所有语义.您可以构建一个完全"后端"的Django应用程序,使用其内置的admin contrib包来管理完全独立的应用程序的数据.或者,您可以将它仅用于"前端",只使用其视图和模板,但完全使用其他东西来管理数据.最常见的是,它用于两者.内置管理员("后端")提供了一种简单的方法来管理数据,并在Django中构建应用程序以各种方式呈现数据.但是,如果你如此倾向,你也可以在Django中创建自己的"后端".您不必被迫使用默认管理员.


Mar*_*cin 5

(a) Django 是一个框架,而不是一种语言

(b) 我不确定你错过了什么 - 没有理由不能在 Web 应用程序中拥有业务逻辑。在 Django 中,您通常希望表示逻辑与业务逻辑分离。仅仅因为它托管在同一应用程序服务器中,并不意味着这两层是纠缠在一起的。

(c) Django 确实提供了模板,但它没有提供丰富的库来生成客户端内容。