真正搞明⽩Python中Django和Flask框架的区别在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下⼏个问题。
⼀、为什么要使⽤框架?
为了更好地阐述这个问题,我们把开发⼀个应⽤的过程进⾏类⽐,往往开发⼀个应⽤(web应⽤、系统应⽤)跟建造房⼦的过程⼀样,需要先打地基,搭好⾻架,然后⼀块砖⼀块砖叠上去。
⽽开发⼀个应⽤呢?同样也需要⼀个好的架构设计,数据库建模,然后⼀个模块⼀个模块使⽤代码实现。
如果开发⼀个软件应⽤不使⽤框架,和我们建房⼦时,每⼀块砖、每⼀根钢筋都需要⾃⼰⽣产出来本质上是⼀样的。
显⽽易见,如果在建造房⼦之前,每⼀块砖头、每⼀种建材,都需要我们⾃⼰去⽣产的话,建造房⼦的效率是极低的,甚⾄可能⼀辈⼦也⽆法把房⼦建造好。
在开发应⽤系统时,使⽤框架可以带来如下好处:
⼤⼤提升开发效率
让应⽤开发更加规范、拓展性更强
让程序员把更多的精⼒放在业务逻辑的实现上,⽽不是重复、⽽复杂的基础环境上(⽐如web服务器、底层实现等)
⼆、为什么使⽤Django和Flask框架?
在Python编程语⾔的世界⾥,功能最强⼤、最流⾏的两个框架。
不仅在web后端开发、微服务开发,同时在ERP系统开发、API接⼝开发等领域,这两个框架应⽤⾮常⼴泛。
三、Django和Flask的区别
1.形象类⽐
django网站如果Django类似于精装修的房⼦,⾃带豪华家具、⾮常齐全功能强⼤的家电,什么都有了,拎包⼊住即可,⼗分⽅便。
⽽Flask类似于⽑坯房,⾃⼰想把房⼦装修成什么样⾃⼰材料,买家具⾃⼰装。材料和家具种类⾮常丰富,并且都是现成免费的,直接拿过去⽤即可。
2.在体量上的区别
Flask:
⼩巧、灵活,让程序员⾃⼰决定定制哪些功能,⾮常适⽤于⼩型⽹站。
对于普通的⼯⼈来说将⽑坯房装修为城市综合体还是很⿇烦的,使⽤Flask来开发⼤型⽹站也⼀样,开发的难度较⼤,代码架构需要⾃⼰设计,开发成本取决于开发者的能⼒和经验。
Django:
⼤⽽全,功能极其强⼤,是Python web框架的先驱,⽤户多,第三⽅库极其丰富。
⾮常适合企业级⽹站的开发,但是对于⼩型的微服务来说,总有“杀鸡焉有宰⽜⼑”的感觉,体量较⼤,⾮常臃肿,定制化程度没有Flask⾼,也没有Flask那么灵活。
3.通过⼤数据统计分析
全球著名的stackshare⽹站对Django和Flask这两个框架的调查分析。
从全球开发者关注程度上:Django为5.8K,Flask为3.31K
从国外招聘⽹站岗位需求上:提到Django的有1.77K,Flask为942
从著名的问答⽹站stack overflow提问数量上:Django 196K,Flask为27.6K
从全球著名的代码托管平台上的star和fork数量上:Django分别为41.3K、17.8K,Flask分别为43.8K、12.3K
4.完成同样⼀个Hello World功能
使⽤Flask来完成:
第⼀步,安装Flask,pip install flask
第⼆步,创建my_first_app.py⽂件,添加如下代码
完成最简单的Hello World功能,Flask只需要7⾏代码,⾮常简单、⽅便。
使⽤Django来完成:
第⼀步,安装Django,pip install django
第⼆步,创建⼯程项⽬⽬录,django-admin startproject myproject
第三步,创建⼦应⽤,python manage.py startapp myapp
第四步,在myapp应⽤所在⽬录中的views.py⽂件中,添加如下代码
第五步,在myapp应⽤所在⽬录中创建urls.py路由⽂件,并添加如下代码
第六步,在主路由⽂件中添加路由。
从上⾯的操作步骤可知,实现同样的⼀个功能,往往Flask较为简单,代码较少,⽽Django所涉及到的流程较多,⼯程项⽬结构清晰,在⼤型项⽬中具有优势。
四、在实际⼯作中如何选择这两个框架呢?
如果你想搞懂Python web开发WSGI协议原理以及实现过程、或者你想灵活定制组件,完全DIY你的应⽤、想实现微服务,那么建议你选择Flask。
如果你关注产品的最终交付、想快速开发⼀个⼤的应⽤系统(⽐如新闻类⽹站、商城、ERP等),那么建议你选择Django,你想得到的功能它都有,想不到的功能它也有。
五、如何才能学好框架呢?
1.需要先学习框架的基础知识、基本实现原理。
2.结合项⽬实践,提升编码能⼒和业务逻辑的理解。
3.翻看框架源码,深⼊理解源码精髓。(进阶)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。