为什么越来越多的 Python 开发者选择使用其他框架替代 Django?

【Django框架】- 基础篇 框架介绍 ORM框架 Django中内嵌了ORM框架,ORM框架可以将类和数据表进行对应起来,只需要通过类和对象就可以对数据表进行操作。 设计类:模型类 ORM另一个作用:根据设计的类生成数据库中的表。 Django架构之MVT 安装 pip install django 或者使用镜像下载 pip install -i http://pypi.douban.com/s... 阅读详情

image.png

Django社区现状

Django 是非常流行的 Python Web 框架,被世界各地被许多大型企业以及组织采用,但也遇到了多数大型开源项目难以避免的问题:活跃贡献者流失,新贡献者供不应求。James Bennett 提到,不少开源项目依赖企业支持来解决此类问题,借由企业员工帮忙维护项目以确保持续发展。Django 早期也是以这样的方式生存,遗憾的是,最终没有发展成长期模式。这也意味着 Django 现在完全依靠的是没有酬劳的贡献者,并已经开始供不应求。

Django 的优点

最大优势,Python,Python 的库实在是太多太好用了,和机器学习、数据分析以及批处理办公契合度太高,使得任何一个 Python 库都可以在 Django 的框架内以一种插件或者模块的形式存在。

学习成本低,我们团队0基础的运维同事,最多 2 个周就能上手写 view 了,这和 Python 本身编程简易有很大关系,更重要的是 Django 自己是一套完整的体系,有自己连贯的逻辑很适合长期应试教育下的学生学习,而不是像 Java 那种开发式的得东补一块西凑一片的才能把整个主流体系都学会。

开发成本低,在缺少前端工程师的情况下,Django 的模板系统和管理站点简直是大多数小系统小项目的救星,HTML 和简单的语法就能解决问题,从时间和金钱上双重节约成本,这种特点也是它的巨大优势。

Django 的缺点

  • 它实在是太重型了,有自己的一套准则,集成了大量的功能,这对于想要有自主知识产权的平台来说实在是不合适。
  • 它的执行效率很低,尤其是使用自带的模板系统的时候,渲染那种大型页面要数秒,当你使用 import-export 库进行导入的时候,那个预览页面有时候都能耗时数分钟才能渲染完。
  • 随着开发越来越多的模块,整个项目变得十分的臃肿,很多功能是逐步更新的,但是旧的代码却一直留存,导致了很多无用代码的存在,虚拟化 docker 打包后的镜像非常的大。这对于很多开发者来说,是非常不友好的。

双刃剑

  • 强制要求关系型数据库,虽然说也能有库支持非关系型数据库,但是总得来说还是要求关系型的,这就导致 Django 对于数据的结构化程度要求很高,数据之间要有清晰的逻辑关系。但好处也是很明显的,逻辑严密,基本不会出错误。
  • 程序结构十分清晰,但是有些模块是用不着的,就会产生资源浪费
  • Python 依赖库支持强大,但也同样的,有些依赖库需要我们去花时间成本来研究更好的使用

Django 行业使用现状

在过去的几年里,Django 一直是 Python Web 开发中最受欢迎的框架之一。但是,在一些新兴的技术趋势的推动下,包括异步编程、无服务架构和机器学习等,有越来越多的开发者开始选择替换 Django 为其他框架。

以下是导致开发人员逐渐选择使用其他框架的一些原因:

Django 的性能问题:尽管 Django 在开发效率和功能丰富性方面表现出色,但在高并发、低延迟应用场景下,Django 的性能仍然不太够用。这主要是由于 Django 采用的同步编程模式,在高并发场景下无法充分地利用 CPU 资源。

异步编程需求:随着异步编程的普及和丰富,越来越多的应用场景需要异步编程来提高吞吐量和响应性能。然而,Django 自身并没有提供支持异步编程的功能,需要依赖第三方库或其他框架进行支持。

Django ORM 的缺陷:Django 内置的 ORM(对象关系映射)功能虽然使用方便,但性能不尽如人意。而很多新兴的 Python 应用框架,比如 FastAPI 和 Flask 等,采用了一些新型的 ORM 技术,比如 Pydantic 和 SQLALChemy 等。这些新技术能够更好地支持异步编程。此外,这些框架也拥有更灵活的 SQL 查询方式,更好的安全性和性能。

前后端分离需求:越来越多的 Web 开发人员需要将前后端分离,使用一些 JavaScript 库和框架开发前端,并且使用 API 来与后端进行通信。在这种情况下,使用 Django 可能比较繁琐,而许多新兴的 Python Web 应用框架,如 FastAPI 等具有支持 API 开发的功能,能够更加轻松地实现前后端分离。

在总体上,Django 仍然是一个强大、功能丰富的 Web 应用框架,能够帮助开发人员快速开发 Web 应用。然而,随着一些新兴技术的普及和需求的变化,一些开发者开始转向使用其他框架,以满足更强的性能、更好的异步编程支持、新型 ORM 技术、前后端分离等需求。

对于目前的敏捷开发来说,我们需要更快的框架来集成更快的开发,来更加友好的给用户更加清晰的 API 展示。 更快的前后端交互,对于后端来说,只需要提高标准化的 API 接口即可,尤其是能帮助做好数据校验,这对前端来说是个好事,也让开发工作变得简单和效率起来。

我们的追求是:更高、更快、更强。

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

Django教程(为什么选择Django框架) 为什么选择Django框架作为web开发 阅读详情

相关推荐

Django vs Flask vs FastAPI: Python后端框架如何选择?

Django是一个高度成熟,功能完善的Python Web框架,其设计目的是减少开发过程中的复杂性和重复性工作。Django提供了ORM(对象关系映射),内置管理界面,用户认证,模板系统等众多功能模块。Django的设计理念是DRY(Don’t Repeat Yourself),旨在减少代码冗余,提高开发效率。它支持多种数据库,并且内置了缓存机制,有助于提升网站性能。Django拥有庞大的社区支持和丰富的插件资源,这使得它成为了构建复杂Web应用的首选框架之一。

cda2024的博客 2878

Django框架过时了吗?新手学Flask还是Django?

除了Flask和Django,还有许多其他框架具有独特的特性和优势,如FastAPI的高性能和异步支持,以及Tornado的事件驱动特性等。在技术领域,变化是常态,新技术的涌现与老技术的淘汰是一个不断演化的过程。因此,对于新手来说,学习Django仍然是一个具有长远眼光的选择。总而言之,要选择一门框架,并不是一蹴而就的决定,而是需要根据自身情况、项目需求和技术发展趋势做出综合考虑。如果你的项目较为复杂,需要一个完整的解决方案,并且愿意花时间学习框架的高级特性,那么Django可能更适合你。

Code掘金的博客 3626

Django与Flask:Python Web框架的选择与对比

Django遵循MVC设计模式,并自带一个功能全面的管理后台,便于开发者快速构建复杂的、数据库驱动的网站。Flask虽然规模较小,但也拥有活跃的社区和丰富的扩展库。然而,这种全面性有时也意味着更多的限制,对于需要高度定制化的项目,Django可能不是最佳选择。此外,Django还提供了丰富的安全相关的设置和中间件,以帮助开发者构建安全的Web应用。然而,随着项目的增长和需求的复杂化,开发者可能需要投入更多时间来选择和集成各种扩展。由于Flask的灵活性,开发者需要更多地关注安全问题,并确保应用的安全性。

anananwc的博客 2505

2024,Django 的最新趋势有哪些?

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。如果我的分享对你有帮助,请关注我,一起向上进击。今年 PyCharm 和 Django 基金会合作进行了一项全球调查,采集了超过 4000 多位 Django 开发者的回答。近期他们据此发布了《2024 Django 年度报告》,笔者从中截取了部分报告内容分享给大家。后端: ...

codingpy的博客 2856

为什么要学习Python Web?以及主流框架Django、Flask、FastAPI如何选择?

Python Web开发三大主流框架对比与选型指南 摘要: Python Web开发凭借高效、生态完善等优势广受欢迎。本文系统分析了三大主流框架:Django(全栈框架,内置丰富功能)、Flask(轻量灵活,适合小型项目)和FastAPI(高性能API框架,支持异步)。通过对比框架特点、适用场景和优缺点,提出选型建议:全栈应用选Django,API服务优先FastAPI,小型项目考虑Flask。学习路径建议从Flask入门,逐步掌握Django和FastAPI,并注重实战项目练习。

数据知道的博客 5033

.NET MAUI跨平台串口通讯方案

MAUI跨平台串口通信架构设计采用分层模式,核心是共享业务逻辑层与平台特定实现。通过定义统一的ISerialPortService接口,实现了Windows、Android、iOS和macOS四大平台的串口通信功能。Windows平台使用System.IO.Ports类库,Android通过USB Host模式实现,iOS基于ExternalAccessory框架,macOS则采用IOKit。该设计支持串口连接管理、数据收发等核心功能,并通过事件机制实现异步通信。架构采用条件编译区分各平台实现,确保代码复用

冰茶的博客 1666

python——Django 框架

根据书籍表结构设计模型类:模型类:BookInfo书籍名称字段:name根据人物表结构设计模型类:模型类:PeopleInfo人物姓名字段:name人物性别字段:gender外键约束:book外键要指定所属的模型类说明 :书籍-人物的关系为一对多. 一本书中可以有多个英雄.不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.根据数据库表的设计在models.py中定义模型类,继承自'''1.定义模型类2.模型迁移。

weixin_64672480的博客 2万+

数学建模常用模型10 :数据包络(DEA)分析法(投入产出法)

数据包络分析是评价多输入指标和多输出指标的较为有效的方法,将投入与产出进行比较。它的结果包含的意思有: ①θ=1,DEA有效,表示投入与产出比达到最优 ②θ<1,非DEA有效,表示投入与产出比没有达到最优,一般来说,θ越大说明效果越好。 数据包络分析是通过对投入的指标和产出的指标做了一个线性规划,并且进行变换后,然后根据其线性规划的对偶问题(线性规划对偶问题具有经济学意义),求解这个对...

HaLosec_Wei 9万+

Python 在 Web 框架领域的演进:Django 是否已经过时?

综上所述,Django 并没有因为轻量级框架的出现而失去价值。相反,它依然在 Python Web 框架领域占据重要位置。无论技术如何发展,Django 所代表的核心理念——高效、安全、可靠——将继续指导未来的 Web 开发实践。对于开发者而言,重要的是认识到不同框架各自的优势与局限性,并根据项目的实际需求做出明智的选择。毕竟,没有绝对完美的框架,只有最适合当前任务的那个。```

2501_91170836的博客 501

新能源知识库(62)组串式、集中式和高压直挂式

因需多台PCS及独立监控设备,单位功率成本比集中式高15%–20%。高压直挂式因省去变压器,大容量项目成本更低(>5MW时优势显著)。组串式储能、集中式储能和高压直挂式储能是当前主流的三类技术路线,其核心差异源于系统架构和控制逻辑的设计差异。组串式交流侧需变压器升压至10kV/35kV,高压直挂式可直接输出6kV/35kV电压,减少转换损耗。多台小功率PCS并联(每簇独立管理)单台大功率PCS(多簇直流侧并联)环流导致容量衰减(损失5%–8%)无变压器损耗(效率>99%)高压直挂电站(≥10MW)

竹君子之家 1517

Windows 2012 SYSVOL复制失败的处理

题外话:晓原理、知架构、查日志是排错的三件法宝今天在DC1上新建并链接了一个组策略对像,在客户端刷新时,却报下面的错误:“处理组策略失败。Windows无法应用组策略对象LDAP….”如下图所示:于是在客户端用\\domain.com访问,发现\\domain.com\SYSVOL\domain.com\policies下面没有上面报错的组策略对象。这是怎么一回事呢,pin...

weixin_33989780的博客 1669

2021年Django Web开发框架依然值得选择吗?

好文推荐,原作:Łukasz Michalak,2020年7月发表于10Clouds,大江狗原创翻译。Django已经15岁了!我们中许多已经工作多年的人几乎无法相信它的年龄。基于Pyt...

大江狗 1万+

本地部署llama3Chinese

这通常意味着你的构建环境可能不完整或者没有正确配置。通常是由 Visual Studio 的 C++ 工具提供的。(大模型对错误的解析)错误信息表明在尝试构建一个项目时,在 Windows 上,

m0_49343639的博客 1432

python django 优势_为什么选择Django?

Web开发是Python语言应用领域的重要部分,也是工作岗位比较多的领域。如果你对基于Python的Web开发有兴趣,正打算开始学习使用Python做Web开发,或者已经是一个Web开发者有工作需要,要做Web服务、自动化运维、数据的图形化展示等,那么学习一门基于Python的Web开发框架是必修课。Python作为当前最火爆最热门,也是最主要的Web开发语言之一,在其二十多年的历史中出现了数十种...

weixin_39966922的博客 952

Android PMS——概述(一)

PMS(Package Manager Service)是 Android 操作系统的一个重要组件,它负责管理应用程序的包信息以及与应用程序的安装、卸载、权限控制等相关功能,确保应用程序的安全性和稳定性。 Android PMS 负责维护一个应用程序包的清单信息,该清单是一个 XML 文件,包含应用程序的各种元数据,例如应用程序的包名、版本号、权限要求、组件信息等。PMS通过访问该清单文件来获取应用程序的信息。 此外,Android PMS 还负责应用程序的安装和卸载。在安装应用

小旭的专栏 1669

在 SAP Fiori 中正确配置 Group 角色:从 PFCG 分配到首页呈现的完整链路

摘要:SAP Fiori项目中,用户登录后能否看到应用往往取决于角色配置而非前端开发。关键在于通过PFCG角色将launchpad designer中创建的tile group关联到用户角色。Catalog是应用池,group是用户首页可见的工作区。正确配置后,用户会看到角色对应的默认分组,同时保留个性化调整能力。项目实施中常见问题是应用开发完成但未正确配置group与角色关联,导致业务用户无法在首页看到应用入口。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 167

Python Web开发:Flask与Django框架比较与选择

Web 开发是创建网站或 Web 应用程序的过程,主要涉及三个层面:前端、后端和数据库。前端负责用户界面的呈现,让用户与网站进行交互;后端则处理业务逻辑,比如用户认证、数据处理等;数据库用于存储和管理应用程序的数据。从技术角度来看,Web 开发基于 HTTP 协议进行通信。当用户在浏览器中输入网址并访问时,浏览器会发送一个 HTTP 请求到服务器。服务器接收到请求后,根据请求的内容进行处理,然后返回一个 HTTP 响应给浏览器。

calvin189s的博客 2594

uniapp - H5网页uni.getLocation报错getLocation:fail Geolocation permission denied.Get ipLocation failed.

uni.getLocation getLocation:fail Geolocation permission denied.Get ipLocation failed.,uni.getLocation定位失败,uni-app getLocation()无法获取定位,一直fail()uniapp移动端h5网页,uniApp微信内置浏览器定位失败,如何解决这个问题,uniapp h5 uni.getLocation获取位置失败怎么办,UNI-APP获取当前位置,uni.getLocation定位失败,unia

🏆 前端领域优质创作者 4244

我为什么选择Django:一个Python Web开发者的自白

help = "清理30天未登录的僵尸用户"# 执行清理逻辑self.stdout.write("僵尸已清理!")然后运行—— 感觉自己像系统管理员之神!它把复杂留给自己,把简洁留给开发者。新同事接手项目时,他会赞美你清晰的代码结构。所以下次有人问:“为什么选Django?” 我会指着墙上 deadline 说:“因为它能让我活着见到明天的太阳!” 🌞(玩笑中的真实!

aurorabyte的博客 772

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

为什么说Python Django 框架越来越好了!

对 Python 工程师来说,Web 开发可以选择的框架很多,比如 Django、Flask、Tornado 等等,而其中 Django 是最全面,也是最受欢迎的,我们熟知的 YouTube、Instagram 都是用 Python + Django 开发的。为什么 Python 开发者更倾向于选择 Django 呢?这主要得益于 Django 功能强大的脚手架和诸多开箱...

大江狗 2739

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

python框架之Django使用

稍具规模的软件系统都会使用MVC架构(或者是从MVC演进出的其他架构),Django项目中我们称之为MTV,MTV中的M跟MVC中的M没有区别,就是代表数据的模型,T代表了网页模板(显示数据的视图),而V代表了视图函数,在Django框架中,视图函数和Django框架本身一起扮演了MVC中C的角色。Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,随着网站规模和体量的增大,这种做法一定是非常糟糕的。Python的Web框架有上百个,比它的关键字还要多。

优快云_LiMingfly的博客 954

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: Pytest:一个卓有成效的测试工具
下一篇: Python中如何选择Web开发框架?
Python_P叔
博客等级 码龄3年 5453粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值