作为一名Web开发人员,您的首要任务是在尽可能短的时间内构建、设计、优化和托管最好的站点。今天,我们想看看Django和WordPress,看看哪个平台更适合您的需要。
你可以为客户工作,也可以尝试销售一个全新的网站。然而,不管你在做什么,有了所有的全新技术,你可能会想:我应该选择什么来构建我的下一个大项目?
与大多数web开发技术一样,没有明确的答案。因此,您必须根据站点要求选择最佳的工具集。
在本文结束时,您将清楚地了解Django和WordPress之间的主要相似性和差异,以及根据您的需要选择哪一种。
- 为什么要比较Django和WordPress?
- 深入比较Django和WordPress
- 可以探索的其他CMS选项
为什么要比较Django和WordPress?
在开始比较之前,必须了解这两种技术、它们的主要特性和它们的用例。
什么是Django?
Django是一个基于Python的网络框架
Django是一个强大的后端Web框架,它包含了构建动态网站所需的所有工具,而无需重新发明轮子。
“后端”是指最终用户看不到的网站端,例如,身份验证、数据库设计和服务器交互。
这是一个开源项目,作为Python解决方案于2005年首次引入,用于构建新闻稿站点。Django是web开发中使用最多的Python库,每月下载量接近700万次。
要使用Django,您必须了解编程的核心概念和Python面向对象编程(OOP)的坚实基础。因此,开始使用Django并不像使用WordPress构建第一个站点那么容易。
Django的主要特点
Django的一些主要功能包括:
- 开源:这是一个免费的开源web框架。任何人都可以使用它来构建web应用程序。
- 可扩展:使用Django,您可以获得pip包管理器的所有功能,因此您可以安装任何可用的Django应用程序或包(例如,您可以安装Django REST框架来构建REST API)。
- 常用标准库:包括构建复杂web应用程序所需的所有功能。从模型和迁移到视图和模板,您可以创建数据库模式、模型用户交互以及设计漂亮的UI。
- 安全性:Django是最安全的web框架之一。它为最常见的安全错误(包括SQL注入、CSRF攻击和跨站点伪造)提供内置身份验证和解决方案。
- 可扩展性:虽然有些人认为Django是不可伸缩的,但这远非事实。Django是世界上发展最快、访问量最大的网站之一。
- 快速开发:开发人员可以极快地从头开始构建应用程序。
- 不要重复你自己(干)的方法:Django通过尽可能避免代码冗余来鼓励这种软件设计原则。
Django的用途
Django具有难以置信的多功能性,这意味着您可以构建几乎任何您可以想象的web应用程序。以下是此框架的一些常见用法:
- 构建后端API
- CRUD(创建、读取、更新和删除)操作—任何动态站点的基础
- 微服务
- 认证管理
- 可扩展和可重用的Web应用程序
- 使用Django构建您自己的内容管理系统或使用预先存在的内容管理系统(例如,Django CMS)
- 几乎其他任何东西——唯一的限制是你的想象力和技术技能。
现在您了解了Django的一些主要特性,是时候跳转到WordPress了。
什么式WordPress?
WordPress是一个用PHP编写的开源内容管理系统(CMS),用于快速构建各种网站。
WordPress CMS
WordPress是2021年最流行的CMS平台。
WordPress的历史是迷人的,但总而言之,WordPress从2003年就开始出现了,它最初是为建立博客而设计的。
如今,它得到了大量贡献者和互联网上最大社区之一的支持。因此,它已成为一个最受欢迎的选择,建立一个网站。
WordPress的主要特点
WordPress的一些关键功能包括:
- 免费和开源:像Django一样,WordPress是免费和开源的软件,这意味着每个人都可以贡献自己的源代码。
- 多功能性:虽然WordPress是一个CMS,但你可以用它建立几乎任何网站。
- 巨大的市场份额:目前,WordPress占据了互联网的40%以上。
- 可扩展性:WordPress有一整套免费和付费插件
- 易于学习和维护:任何人都可以在数小时内创建并开始管理他们的网站。你唯一需要学习WordPress的就是时间和资源。
- 内置SEO功能:WordPress有内置的SEO工具,比如自动生成标题标签和元描述。如果你需要更重的东西,你可以加入像Yoast SEO这样的外部插件。
- 多种托管选项:您可以选择使用WordPress.com或自托管选项。
WordPress用法
WordPress是一个内容管理系统,其主要目的是创建、管理和修改内容。这就是说,它的大量插件使它能够构建更多的插件,例如:
- 商业网站
- 会员网站
- 电子商务商店
- 博客(WordPress的初衷)
- 作品集
- 恢复
- 论坛
- 非营利网站
深入比较Django和WordPress
我们已经了解了Django与WordPress的主要特点。现在,是时候对这两者进行比较了。
因为它们是不同的技术,有些方面似乎很难比较。然而,我们将为您提供所需的关键信息,以确定最佳选择。
后端Web框架与CMS
Django是一个后端框架,而WordPress是一个CMS。正如你可能已经猜到的,它们是用来完成不同的任务的。
web框架是建立在编程语言之上的一组工具,可以让您从头开始构建web应用程序。像Django这样的大多数web框架不像CMS那样提供现成的内容管理工具;相反,您会收到一个API来定制您想要的任何内容。
与CMS相比,web框架允许您创建更复杂和自定义的功能,因为您可以使用代码创建它们。有了CMS,如果没有适合您需要的插件,那么您可以创建自定义功能的选项就更少了。
例如,其中一个CMS可能难以连接到第三方API或管理高度复杂的身份验证系统。
下表列出了构建网站时web框架与内容管理系统的功能。
Web Framework | CMS |
---|---|
你需要知道如何编写代码来建立一个网站。 | 你不需要任何特定的知识来建立一个网站。 |
用于构建具有复杂需求和自定义功能的web应用程序。 | 用于利用各种插件构建没有复杂需求的网站。 |
网站的开发可能持续数周到数月,这取决于需求。 | 由于内置的工具,启动网站更容易、更省时。 |
如果你需要雇佣开发者来建立一个网站,这可能会很昂贵。 | 除非你使用昂贵的插件,否则这比使用一个网络框架要便宜。 |
由于不受特定CMS架构的限制,它通常更具可扩展性。 | 扩展功能的唯一方法是使用插件或创建自己的插件。 |
学习曲线
从Django vs WordPress的语用角度来看,前者比后者更难学习和使用。这是因为您需要以下方面的先前知识:
- 基本编程概念(变量、循环、函数)
- Python编程(Python中的关键字、工作原理、语法)
- 终端命令(Unix或Powershell)
- Python中的面向对象编程
除此之外,我们建议您在启动第一个live站点之前与Django一起玩。您可以按照Django官方教程进行操作,该教程将指导您创建投票应用程序。
此外,如果您计划自己构建Django站点,您应该了解一些前端开发。基本的HTML和CSS对于你的第一个网站来说是不错的。
另一方面,WordPress有一个更友好的学习曲线,您可以在几天内启动您的第一个站点。这是因为您使用的是GUI(图形用户界面),而不是手工编写站点代码。
如果你想让你的网站快速运行,WordPress是一个更好的选择。但是如果你有耐心并且想在旅途中学习web开发,你可以选择Django。
无论你选择哪种技术,你都可以通过使用它来赚取可观的利润。WordPress开发人员和web开发人员都倾向于在了解了CMS的细节后发展壮大。
谁在使用?
让我们讨论一下Django vs WordPress技术在全球一些最赚钱的公司中的流行程度。
Django市场份额
根据SimilarTech的数据,使用Django作为主要框架的网站多达92000个。
Django使用统计数据(图片来源:SimilarTech)
尽管今年Django网站的数量保持不变,但总流量却大幅增加。这是Django项目可以实现的可伸缩性的一个好迹象。
Django的使用趋势. (图片来源:Wappalyzer)
然而,这些数据并不能反映整个现实。Django的主要用途之一是微服务,而这类任务不会出现在总体报告中。
使用Django的站点
让我们看看最流行的使用Django的网站。
(1)Instagram
你能相信世界上最常用的社交媒体之一最初是作为Django项目启动的吗?
引用Instagram工程团队对Instagram Django的使用:
“Instagram目前是世界上最大的Django web框架部署,完全用Python编写。”
(2)Disqus
Disqus是最常用的评论系统。它使用Django作为主要框架,每秒处理超过45000个请求。
Disqus主页截图
(3)华盛顿邮报
你还记得Django最初是为了建立一个报纸网站而设计的吗?
现在,这仍然是事实。《华盛顿邮报》使用它,《洋葱》和PBS也使用它。
(4)NASA
NASA的官方网站是由Django建立的,每月处理超过200万次的浏览量。
NASA主页截图
更多网站
- National Geographic
- Spotify
- Mozilla
- Eventbrite
- DropBox
- BitBucket
考虑到WordPress是世界上使用最多的CMS,WordPress运行大量网站并不令人印象深刻。然而,WordPress在40%的网络份额后的表现令人震惊。
如果我们意识到每天有500多个WordPress网站被创建,那么这个数量可能会增加。
使用WordPress的网站
有了如此高的可用性,认为一些访问量最大的网站使用WordPress是可行的。让我们看看其中的一些。
(1)微软博客
微软的官方博客使用WordPress来管理有关其产品和新闻的内容。
微软博客主页
(2)滚石乐队
甚至你最喜欢的乐队也在使用WordPress为他们的网站提供动力!
滚石的主页截图
(3)迪斯尼企业官网
迪斯尼公司的新闻网站也是使用WordPress作为驱动的。
迪斯尼主页截图
(4)更多
要提到更多使用WordPress的著名网站:
- TechCrunch
- Star Wars blog(星球大战博客)
- 瑞典官方网站
- Rackspace博客
Tips:你可以通过WhatCMS检查网站使用的CMS。
外部工具
这两种技术都具有出色的扩展能力。
在Django方面,您可以访问所有Python Package Index(PyPI),这意味着您可以完全免费使用其他人制作的工具和应用程序。
Python Package Index (PyPI)
Django开发中使用最多的第三方软件包包括:
- Django REST framework:使用Django构建REST API的最常用工具包
- Django extensions:用于Django开发人员日常工作的一组工具
- Whitenoise:管理Python web应用程序的静态文件服务
- Django allauth:解决了将第三方身份验证(如社交媒体)集成到项目中的问题
要想了解更多可以整合到项目中的Django应用程序,可以参考Django软件包。
另一方面,WordPress拥有整个第三方插件和开发套件市场。如果我们只计算WordPress.org上列出的免费插件,我们就可以访问58000多个选项。
WordPress官方插件库页面
要列出其中一些:
- Yoast SEO:最常用的SEO插件
- Elementor:WordPress页面生成器插件
- Ninja forms:拖放式形态构建器
- WooCommerce:只需点击几下就可以建立一个电子商务商店
文件结构
Web项目的文件结构是在为internet构建有意义的内容时需要注意的最重要(但往往被低估)的元素之一。
现在让我们比较一下Django和WordPress的文件结构。
Django文件结构
Django将其结构划分为项目和应用程序。简言之,项目是配置和应用程序的集合。应用程序是一种能够执行某些操作的web应用程序,例如,博客应用程序、投票应用程序或身份验证过程。
一个项目可以包含多个应用程序,一个应用程序可以是多个项目的一部分。
要创建Django项目,请确保已安装Python,并在终端中运行以下命令:
使用上述命令,您可以安装Django,启动名为“myproject”的项目,并打印其文件结构:
如果选择使用适当的文件管理器查看文件结构,您将看到如下内容:
Django项目文件结构
正如您所了解的,Django有一个双文件夹结构,其中“根文件夹”有另一个同名目录。该子文件夹包括项目的所有配置。
我们不会讨论Django项目中每个文件的用途,但是您可以在官方教程中查看它们。
现在,要创建Django应用程序,请运行以下命令(确保您所在的目录包含manage.py文件):
这将创建一个名为myapp的Django应用程序。让我们看看新文件夹中的内容:
更新的Django应用文件结构
如您所见,应用程序与项目文件夹的结构截然不同。基本上,应用程序文件夹包含自己的配置、模型注册(设计数据库表的Django方法)、处理web请求和响应的视图以及URL调度程序。
这就是Django的全部!接下来让我们转到WordPress的文件结构。
WordPress文件结构
如果您对WordPress的文件结构与Django的文件结构比较好奇,那么您的位置是对的。让我们在本地安装WordPress,看看它的文件结构是什么样子。
转到WordPress下载页面并下载ZIP文件:
WordPress下载页面
使用图形文件管理器或您选择的其他工具解压缩ZIP文件夹:
提取WordPress安装包压缩文件
它会生成一个名为wordpress的文件夹。打开此文件夹并查看其包含的文件列表:
WordPress文件和目录列表
我们在WordPress文件指南中对此进行了更详细的解释,但是您可能会注意到,站点的WordPress文件结构中有许多PHP文件。这是因为WordPress基本上是用PHP构建的。
让我们看看文件结构是什么样子,并将其与Django进行比较:
WordPress文件结构
看到WordPress网站的结构是如此复杂,令人印象深刻。如果仔细查看子文件夹wp-admin, wp-content和wp-includes,事情会变得更加复杂。
这种方法并不实用,因为大多数时候你都不会处理这些文件。然而,它证明了CMS(在本例中是WordPress)比Django这样的web框架“打包”得多。
当然,使用Django,您的文件结构可以无限增长,因为您可以创建任意数量的应用程序,并添加任意数量的功能。像Instagram这样的应用程序包含10000多个Django微型应用程序,但我们只是比较这些技术的起点。
另一个区别是与这些文件结构的交互。在Django中,您必须使用终端(如果您从未使用过它,这可能看起来很可怕),而在WordPress中,很少需要终端。你可以看到,当谈到Django和WordPress时,文件结构是完全不同的。
模板系统
我们生活在动态网站的时代。大多数情况下,您不想依赖静态HTML,这就是为什么WordPress或Django等现代技术都有动态显示数据的模板。
Django模板语言
Django有DTL(Django模板语言),它由文本文件(HTML、XML、CSV)组成,这些文件使用特殊语法将某些逻辑与用户体验联系起来。
例如,如果希望版权标志包含当前年份而不编辑站点,则可以使用Django模板标记反映用户查看页面的年份。
DTL包括的一些功能包括:
- 变量
- 循环
- 动态标签
- 过滤器
- 注释语法
- 模板继承
- 自动HTML转义(针对内联脚本的额外保护)
WordPress模板层次结构
当然,WordPress是一个动态平台,它避免使用静态HTML文件。它还附带了一个内置的模板系统。
这些模板是普通的PHP文件,一组结构化的模板会生成WordPress主题。
Django模板语言和WordPress模板之间的主要区别在于,Django模板是用它们自己的语法编写的,这意味着您不是在编写Python文件,而是使用带有特殊组件的文本文件。另一方面,WordPress模板是用纯PHP编写的。
我们已经做了一个关于WordPress模板层次结构的完整指南,所以别忘了查看它!
文档
这两种技术在互联网上都有一些最有效的文档。
Django文档将指导该框架从安装过程到更高级的使用。您可以找到教程、主题指南、参考指南(Django功能的技术概述)和操作指南。
Django文档页面
在撰写本文时,Django文档已经被翻译成10种语言,还有更多的语言将被翻译。
在WordPress方面,您有WordPress codex,其中包括开始建立WordPress网站所需的大部分内容。
WordPress codex页面
目前,WordPress codex已被翻译成50多种语言,由于其全球市场份额,这是有意义的。
WordPress还拥有大量的开发人员资源,可以在项目陷入困境时提供帮助。
社区
如果没有支持它的社区,什么是伟大的技术?让我们看看Django和WordPress的不同社区。
Django社区
Django拥有一个庞大的学习者和专业人士社区,他们将帮助您解决此框架的问题。
Django的社区页面是一个很好的起点,因为它包含有价值的链接和资源集合。
Reddit和Dev.to等站点上还有其他子单元。还值得一提的是StackOverflow上的Django主题。
如果你想参加Django会议,你可以参加一年一度的Django大会。不幸的是,它只在美国和欧洲提供,但是你可以找一个较小的本地会议,或者自己组织一个。
最后但并非最不重要的一点是,非营利组织Django Girls通过教妇女如何使用Django、Python、HTML和CSS,在赋予妇女权力方面做了大量工作。
WordPress社区
由于WordPress的大量使用,假设它有一个更大的社区是很正常的。
你可以在互联网上找到成百上千的WordPress群组和社区,但出于实用目的,我们将只提及最突出的群组和社区。
WordCamp是全球WordPress会议最著名的会议组织者。无论你身在何处,都有可能在你身边举行WordCamp会议。
如果没有支持社区的支持,什么是伟大的技术?让我们来看看詹戈和WordPress的不同社区。
WordCamp主页
官方的Make WordPress社区网站还组织了个人和在线社区会议。他们甚至有一个正式的闲聊,谈论对WordPress项目的贡献(代码、设计、文档等)。
Dev.to的WordPress社区有超过1200篇文章,StackOverflow有一个保留的标签用于WordPress疑难解答。
这些WordPress社区令人印象深刻的一点是,他们为所有WordPress用户创建免费插件和主题。它类似于Django通过PyPI提供的包。
总而言之,这两种技术都有一个很好的社区,你不必费劲去会见人们,谈论Django或WordPress。也就是说,由于WordCamp的流行,世界各地的WordPress会议比Django更多。
托管选项
如果没有人可以访问,你为什么要建立一个网站?这就是为什么你需要有非常清晰的选项来部署和托管你的站点。
Django托管
Django有各种各样的托管选项,但一般来说,您需要使用WSGI或ASGI进行部署的技能。另一个需要考虑的是Django本身无法处理静态文件(CSS、JS、图像),因此需要单独的服务来管理它们。
您可以使用以下选项:
- 专用即用PaaS(平台即服务):您不必手动配置服务器。只需在项目中包含最少的配置,就可以开始了。
- 直接安装在Linux服务器或VM上:您可以在Linux服务器或虚拟机(例如AWS EC2)中管理依赖项并配置web服务器软件,如NGINX或Apache。
- 在Linux服务器上使用Docker:与前面的选项一样,您可以通过Docker管理所有依赖项和配置。
- 在无服务器基础设施上部署:现在,您可以使用自定义后端(例如AWS Lambda)部署Django无服务器。
Django托管的一个缺点是成本——通常,您需要为运行live的Django站点支付比WordPress实例更高的费用。
Django旨在构建功能更强大的应用程序,用户可以在其中进行高水平的交互,因此比一般的WordPress网站有更多的web请求。
考虑到这一点,如果你预计每天的访问量不到1000次,并且你的Django应用程序经过了很好的优化,那么你可以预期每月支付5到25美元。
WordPress主机
WordPress主机的可用选项数量可能会非常多。
任何安装了PHP、MySQL、HTTP支持和Apache或NGINX的Linux服务器都可以做到这一点。
但是,为什么要手动配置服务器来托管WordPress?本CMS的主要目的是尽快推出任何类型的网站。
这就是为什么大多数时候,你会使用特定于WordPress的托管——这只不过是为了满足WordPress的所有要求而优化的托管——这样你就可以专注于重要的东西。
当提到WordPress“专用”托管时,我们有两个选项:共享托管和托管托管。
我们已经就托管托管与共享托管做了一个完整的指南,但让我们回顾一下它们各自的含义:
- 共享主机:您的站点将与其他WordPress实例“共享”一台服务器,这通常意味着它的性能会更差,同时可能会带来一些毫无帮助的支持和更多问题。然而,如果你刚刚开始,共享主机可能是一个不错的选择,因为它会便宜得多(每月3-25美元)。
- 托管:这就像租房子而不是公寓。您将为WordPress站点提供一个专用服务器,并提供更好的性能和高质量的支持。如果您是管理多个站点或中型企业的经验丰富的WP开发人员,您应该选择托管,每月支付25到150美元。
相似之处
让我们回顾一下Django和WordPress之间的一些关键相似之处:
- 免费和开源软件
- 能够建立大多数类型的网站
- 多语言支持
- 世界级组织使用
- 大量的第三方工具
- 可扩展且灵活的文件结构
- 简单但功能强大的模板系统
- 大量文件
- 大社区
- 几个托管选项
差异
虽然Django和WordPress之间有许多相似之处,但不同之处是选择一种技术的关键点。
Django | WordPress |
---|---|
后端Web框架 | 内容管理系统 |
用Python编写 | 用PHP编写 |
支持多个数据库:PostgreSQL、MariaDB、MySQL、甲骨文、SQLite 等,并具有第三方后端 | 只支持MySQL和MariaDB |
始于2005年的报纸解决方案 | 始于2003年作为一个博客平台开始 |
创建网站所需的Python和Linux知识 | 开始时不需要具备编码技能,但了解基本的HTML、CSS和PHP会有所帮助 |
从头开始每个项目 | 使用即用工具管理内容 |
市场份额降低 | 运行40%的网站 |
需要更多的发展规划和时间(但仍是一个快速发展的框架) | 在短时间内构建网站 |
必须手动对前端进行编码 | 提供一键式安装的主题 |
默认情况下不包括SEO功能 | 内置SEO功能 |
可以探索的其他CMS选项
Django和WordPress都非常流行,以至于“儿童”CMS诞生于这两个流行平台之上。这些是Django vs WordPress的分支版本,它们试图提供原始CMS所没有的东西。
Django vs WordPress
作为一个web框架,Django能够构建额外的CMS。Django CMS是一个基于Django的内容管理系统,它考虑了开发人员和内容编辑器。
Django CMS主页截图
它是免费的,开源的,有优秀的文档,并且有一个不断增长的社区。
如果您需要CMS,但希望保留Django的功能,Django CMS是一个完美的选择。
Wagtail CMS vs WordPress
Wagtail是在Django之上构建的另一个CMS。它有一个漂亮的界面,可以连接到您正在开发的其他Django应用程序。
Wagtail CMS主页的屏幕截图
同样的故事:如果你想完全控制你的代码库,又不想失去Django的所有特性,Wagtail也许可以满足你的需要。
小结
Django和WordPress已经成为能够构建任何类型网站的技术。你也很难出错,但在你做出决定之前,你应该考虑到一些好处和坏处。
Django是您的最佳选择,如果:
- 您的项目对自定义功能或API连接有许多要求
- 您的项目关注用户交互(用户将积极使用您的网站,而不是被动阅读)
- 任务自动化是一个优先事项
- 您希望在建立网站时提高编程技能
- 你想绝对控制你的整个网站
WordPress可能更适合您的需要,如果:
- 你需要一个个人网站、作品集或博客
- 您正在为本地企业开发一个简单的站点
- 时间是头等大事
- 您还不知道如何编写代码
- 您的站点没有复杂的权限系统(WordPress可以轻松处理)
- 你想要的SEO功能开箱即用