我想知道使用纯Python文件制作网页和使用Django之间的性能差异是什么。我只是想知道这两者之间是否存在显著差异。谢谢。
Django是纯Python编写的。因此,每个like语句或表达式的执行时间都相同。需要理解的是,在开发Web时,许多组件被整合在一起以提供多个优势:
如果您从头开始编写自己的网站,那么您需要至少自己实现几个组件。除非您花费了大量时间来开发您的网站,否则您将失去大部分以上的好处。Django和其他用于各种其他语言的Web框架旨在提供常见的元素,让您直接着手处理业务需求。
如果在Web框架兴起之前,您曾经在PHP中编写过自定义会话代码和数据访问代码,那么您甚至不会考虑与使您的工作有趣且更容易的框架相关的性能成本。
现在,Django内置了很多组件。它的设计方式使大多数时候它们不会影响您。尽管如此,每个请求执行的代码量仍然相当可观。如果您使用Django构建网站,但性能无法满足要求,那么可以随意删除您不需要的所有部分。或者,您可以使用“轻量级”Python框架。
实际上,直接使用Django即可。它非常强大。它已经支持了许多比您(或我)将要构建的任何东西都大得多的网站。有许多提高性能的方法,例如利用缓存而不是优化自定义中间件的循环。
取决于你的“纯Python”如何制作网页。例如,如果它使用模板引擎,则该引擎的性能将会产生巨大的影响。如果它使用数据库,则你所使用的数据访问层(在该层的要求上下文中)将会有所不同。
因此,问题变成了你的任意(目前未公开)工具链选择是否比Django选择的更具运行时性能。如果性能是你的主要、最重要的目标,你肯定应该能够做出更优化的选择。但是,在总体成本方面——即为较慢的运行时选项购买更多的Web服务器,还是为更费力开发的选项购买更多的程序员工时——这个问题有太多的开放元素,无法回答。
.py
文件只是通过“标准输出”来显示HTML等内容,也需要一些中间层的粘合剂来将进入Web服务器的请求转换成Python解释器能够理解和正确分派的输入,以最终执行你的.py文件。你需要自己实现这个中间件来进行良好的比较。但这时,“脚本”和Web框架之间的界限在哪里呢?最终,你本质上是在尝试重新发明Django,或者自己实现一个新的框架。 - Santa过早的优化是万恶之源。
Django在做网站开发时非常方便,再加上拥有数百个用于常见任务的插件的庞大社区,对于专业工作来说是一个真正的福音。
即使你的“原始”实现更快,我也不认为它能够严重影响你的Web应用程序。使用适当抽象级别的工具进行构建,如果性能成为问题,请测量并找出瓶颈所在,并应用优化。如果经过所有这些步骤后,你发现Django创建的抽象正在减慢你的应用程序(我并不指望它们会),你可以考虑切换到另一个框架或手动编写代码。你可能会发现,通过缓存、在多个服务器之间平衡负载以及执行“惯用技巧”,而不是重新实现Web框架本身,你可以获得性能提升。
Django同样是纯Python的。
性能主要取决于您的代码效率。
软件性能问题大部分源于低效的代码,而不是工具和语言的选择。因此,实现非常重要。据我所知,Django在这方面做得非常出色,其性能超过了标准。