Python测试开发中Django和Flask框架的区别

发表于:2019-5-16 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:软件测试    来源:今日头条

#
Python
分享:
  在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题。
  一、为什么要使用框架?
  
  为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应用、系统应用)跟建造房子的过程一样,需要先打地基,搭好骨架,然后一块砖一块砖叠上去。
  而开发一个应用呢?
  同样也需要一个好的架构设计,数据库建模,然后一个模块一个模块使用代码实现。
  
  如果开发一个软件应用不使用框架,和我们建房子时,每一块砖、每一根钢筋都需要自己生产出来本质上是一样的。
  显而易见,如果在建造房子之前,每一块砖头、每一种建材,都需要我们自己去生产的话,建造房子的效率是极低的,甚至可能一辈子也无法把房子建造好。
  在开发应用系统时,使用框架可以带来如下好处:
  1、大大提升开发效率;
  2、让应用开发更加规范、拓展性更强;
  3、让程序员把更多的精力放在业务逻辑的实现上,而不是重复、而复杂的基础环境上(比如web服务器、底层实现等);
  二、为什么使用Django和Flask框架?
  
  1、在Python编程语言的世界里,功能最强大、最流行的两个框架。
  2、不仅在web后端开发、微服务开发,同时在ERP系统开发、API接口开发等领域,这两个框架应用非常广泛。
  三、Django和Flask的区别
  ◆ 形象类比
 
  如果Django类似于精装修的房子,自带豪华家具、非常齐全功能强大的家电,什么都有了,拎包入住即可,十分方便。
 
  而Flask类似于毛坯房,自己想把房子装修成什么样自己找材料,买家具自己装。
  材料和家具种类非常丰富,并且都是现成免费的,直接拿过去用即可。
  ◆ 在体量上的区别
  Flask:小巧、灵活,让程序员自己决定定制哪些功能,非常适用于小型网站。
  对于普通的工人来说将毛坯房装修为城市综合体还是很麻烦的,使用Flask来开发大型网站也一样,开发的难度较大,代码架构需要自己设计,开发成本取决于开发者的能力和经验。
  Django:大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富。
  非常适合企业级网站的开发,但是对于小型的微服务来说,总有“杀鸡焉有宰牛刀”的感觉,体量较大,非常臃肿,定制化程度没有Flask高,也没有Flask那么灵活。
  ◆ 通过大数据统计分析
 
  全球著名的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。
  ◆ 完成同样一个Hello World功能
 
  使用Flask来完成:
  第一步,安装Flask,pip install flask
  第二步,创建my_first_app.py文件,添加如下代码
  
  完成最简单的Hello World功能,Flask只需要7行代码,非常简单、方便。
  使用Django来完成:
  第一步,安装Django,pip install django
  第二步,创建工程项目目录,django-admin startprojectmyproject
  第三步,创建子应用,python manage.py startappmyapp
  第四步,在myapp应用所在目录中的views.py文件中,添加如下代码。
 
  第五步,在myapp应用所在目录中创建urls.py路由文件,并添加如下代码
  
  第六步,在主路由文件中添加路由。
  从上面的操作步骤可知,实现同样的一个功能,往往Flask较为简单,代码较少,而Django所涉及到的流程较多,工程项目结构清晰,在大型项目中具有优势。
  四、实际中如何选择这两个框架
  
  如果你想搞懂Python web开发WSGI协议原理以及实现过程、或者你想灵活定制组件,完全DIY你的应用、想实现微服务。那么建议你选择Flask。
  如果你关注产品的最终交付、想快速开发一个大的应用系统(比如新闻类网站、商城、ERP等)。那么建议你选择Django,你想得到的功能它都有,想不到的功能它也有。
  五、如何才能学好框架
  1、需要先学习框架的基础知识、基本实现原理
  2、结合项目实践,提升编码能力和业务逻辑的理解
  3、翻看框架源码,深入理解源码精髓(进阶)

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号