ELI5:什么是Django?

时间:2019-03-26 10:41:12

标签: python django

我意识到有些人可能会问这个问题,但是不管是否相信“高级Python Web框架” (官方描述)对初学者。

我所知道的:

Python是一种语言,您可以在其中写下内容,然后从上到下执行它。有类和对象,但从上到下仍然相当多。还有一些库,例如,您可以将其与include time一起使用。这些为您提供了很多额外的功能,您无需自己编写。 Python代码保存在.py文件中。

现在我的问题是-Django是仅仅是一个漂亮的python库,还是一种实际的编程语言,由于某种原因,它也使用了.py文件?以及它如何与我在{{some_variable_name}}文件中编写的.html命令一起工作?也是Django吗?

(如果这个问题没有解决,请)假装我真的很愚蠢,除了我刚刚写的东西外,一无所知。

谢谢!

更多上下文: 我必须使用oTree,这是用于经济实验的软件。尽管只要您只需要基本功能,使用起来就很简单,但是只要您退出本教程中介绍的内容,您就会意识到它具有许多复杂的层次,完全是完全的超出了初学者的能力范围。因此,我有点想揭开这个谜,至少要学习一些单词以理解论坛对我问题的回答。

1 个答案:

答案 0 :(得分:1)

从某种意义上说,框架就是一个库。这是一堆写在其他地方的代码,您可以用来完成工作。

不同之处在于,您期望与库中的实际代码有多少互动。使用(例如)Python json模块/库,您完全不需要了解库调用规范。传入一个Python数据结构,包括列表,字典,字符串和数字。 JSON文本出来了。或相反亦然。也许您必须解码有关不可序列化数据的错误消息,然后为一个Python日期编写一个序列化程序。除此之外,什么都没有。

像这样几乎可以使用Django的初级/初学者级别。大多数书籍和在线教程都从此处开始。但是对于做最有用的事情,需要使用Python继承来继承Django类并扩展它们以完成您想要的事情,方法是重写Django提供的方法以在调用超类之前或之后插入您自己的代码,或者偶尔替换Django类共。在相当深的堆栈的各个级别上,您都可以选择-几乎总是希望或任务要求-通过与自己的业务联系更紧密的自己来增强Django的通用行为。

还有一个庞大的模块生态系统,可与Django框架集成。诸如django-crispy-forms,django-tables2,django-filters之类的东西,还有数百甚至更多的东西。这些使您不必重新发明许多轮子。

用作者自己的话说,Django也被“调皮”。实现Web服务器的方法不止一种。 Django没有声称是通用的。还有其他框架。因此,它是“ A 高级Python Web框架”,而不是“唯一明智的可能的Python Web框架”。

如果您喜欢类比,那么简单的库就是一台机器。说,割草机。甚至是汽车。 Django更像是拥有工程作品。它可以在一定范围内制造任何东西。如果没有人对“什么”做出决定,它什么也做不了。和“如何?”,也许可以用其他更适合该目标的机器替换一些现有机器。

相关问题