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

测试背锅
• 阅读 4912

在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题。

一、为什么要使用框架?

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

为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应用、系统应用)跟建造房子的过程一样,需要先打地基,搭好骨架,然后一块砖一块砖叠上去。

而开发一个应用呢?

同样也需要一个好的架构设计,数据库建模,然后一个模块一个模块使用代码实现。

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

如果开发一个软件应用不使用框架,和我们建房子时,每一块砖、每一根钢筋都需要自己生产出来本质上是一样的。

显而易见,如果在建造房子之前,每一块砖头、每一种建材,都需要我们自己去生产的话,建造房子的效率是极低的,甚至可能一辈子也无法把房子建造好。

在开发应用系统时,使用框架可以带来如下好处:

1、大大提升开发效率;

2、让应用开发更加规范、拓展性更强;

3、让程序员把更多的精力放在业务逻辑的实现上,而不是重复、而复杂的基础环境上(比如web服务器、底层实现等);

大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地

二、为什么使用Django和Flask框架?

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

1、在Python编程语言的世界里,功能最强大、最流行的两个框架。

2、不仅在web后端开发、微服务开发,同时在ERP系统开发、API接口开发等领域,这两个框架应用非常广泛。

三、Django和Flask的区别

◆ 形象类比

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

如果Django类似于精装修的房子,自带豪华家具、非常齐全功能强大的家电,什么都有了,拎包入住即可,十分方便。

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

而Flask类似于毛坯房,自己想把房子装修成什么样自己找材料,买家具自己装。

材料和家具种类非常丰富,并且都是现成免费的,直接拿过去用即可。

◆ 在体量上的区别

Flask:小巧、灵活,让程序员自己决定定制哪些功能,非常适用于小型网站。

对于普通的工人来说将毛坯房装修为城市综合体还是很麻烦的,使用Flask来开发大型网站也一样,开发的难度较大,代码架构需要自己设计,开发成本取决于开发者的能力和经验。

Django:大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富。

非常适合企业级网站的开发,但是对于小型的微服务来说,总有“杀鸡焉有宰牛刀”的感觉,体量较大,非常臃肿,定制化程度没有Flask高,也没有Flask那么灵活。

◆ 通过大数据统计分析

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

全球著名的stackshare网站对Django和Flask这两个框架的调查分析。

Python测试开发中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功能

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

使用Flask来完成:

第一步,安装Flask,pip install flask

第二步,创建my_first_app.py文件,添加如下代码

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

完成最简单的Hello World功能,Flask只需要7行代码,非常简单、方便。

使用Django来完成:

第一步,安装Django,pip install django

第二步,创建工程项目目录,django-admin startprojectmyproject

第三步,创建子应用,python manage.py startappmyapp

第四步,在myapp应用所在目录中的views.py文件中,添加如下代码。

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

第五步,在myapp应用所在目录中创建urls.py路由文件,并添加如下代码

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

第六步,在主路由文件中添加路由。

从上面的操作步骤可知,实现同样的一个功能,往往Flask较为简单,代码较少,而Django所涉及到的流程较多,工程项目结构清晰,在大型项目中具有优势。

四、实际中如何选择这两个框架

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

如果你想搞懂Python web开发WSGI协议原理以及实现过程、或者你想灵活定制组件,完全DIY你的应用、想实现微服务。那么建议你选择Flask。

如果你关注产品的最终交付、想快速开发一个大的应用系统(比如新闻类网站、商城、ERP等)。那么建议你选择Django,你想得到的功能它都有,想不到的功能它也有。

五、如何才能学好框架

1、需要先学习框架的基础知识、基本实现原理

2、结合项目实践,提升编码能力和业务逻辑的理解

3、翻看框架源码,深入理解源码精髓(进阶)

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
tornado框架&三层架构&MVC&MTV&模板语言&cookie&session
web框架的本质其实就是socket服务端再加上业务逻辑处理,比如像是Tornado这样的框架.有一些框架则只包含业务逻辑处理,例如Django,bottle,flask这些框架,它们的使用需要依赖包含socket的第三方模块(即wsgiref)来运行在python中常见的web框架构建模式有以下两种:
浅梦一笑 浅梦一笑
4年前
小白学习python该往哪方面走小白必看
整理了Python的7大就业方向,希望大家能找到适合自己的,然后学习下去,完成人生的目标。1、Web开发(Python后端)Python有很多优秀的Web开发框架,如Flask、Django、Bootstar等,可以帮助你快速搭建一个网站。当需要一个新功能时,用Python只需添加几行代码即可,这受到了很多初创型公司的一致欢迎。像知乎、豆瓣、小米这样的大厂,
Stella981 Stella981
3年前
Python在网页上展示表格的简单方法
!(https://oscimg.oschina.net/oscnet/22596eed3e2a4708acc1bc8a22f8588d.jpg)Python是当今最热门的编程语言Pandas是Python下最热门的数据处理与数据分析的库Flask是Python下方便简洁的Web开发框架
Stella981 Stella981
3年前
Dash by Plotly 学习笔记
一、介绍1、dash是什么dash是一个基于Flask(Python)React的web框架。入门指南:https://dash.plot.ly/gettingstarted(https://www.oschina.net/action/GoToLink?urlhttps%3A%
Stella981 Stella981
3年前
Flask框架
FLask框架的简单介绍Flask是一个基于Python开发并且依赖jinja2模板和WerkzeugWSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用
Stella981 Stella981
3年前
Asp.Net Core和Django如何选择
一、前言最近经常听说“人生苦短,我选python”这句话,为什么python拥有如此多的粉丝,她和c、java静态语言有哪些区别和优略呢?本篇将对python、c主流的web框架Django和Asp.NetCore做一些分析,带给大家更多的技术认知。什么是DjangoDjango是使用python语言开发的一套web框架,
Stella981 Stella981
3年前
Nginx+uWSGI+Django原理
Python的Web开发中,如果使用Django框架,那么较为成熟稳定的服务器架构一般是NginxuWSGIDjango。而为什么一定要三个结合在一起呢?直接使用Django的runserver来启动服务器进程,或者uWSGIDjango可不可以呢?为什么? 概念说明:APP(应用程序),就是开发者写的应用程序,例如djang
Stella981 Stella981
3年前
Flask框架总结
Flask介绍:Flask是一个基于Python开发并且依赖jinja2模板和WerkzeugWSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助j
可莉 可莉
3年前
10w字!Django+Flask+经典Python数据分析合集
大伙可能都知道Python可以应用在很多方面,比如Web开发,小编我之前在学习这一块知识的时候,也苦于查找系统的资料。对于成熟的框架比如Flask、Django,如果有一套完整的内容体悉加上实际案例,学习起来还是很快的。最近我发现了一个优质的原创博主,公众号里写了很多原创的Django系列和Flask系列的文章。恰好人
Stella981 Stella981
3年前
Flask自定义转换器,实现路由匹配正则表达式参数
Flask框架动态路由实现参数传递和Django框架有类似之处,但是相比于Django框架,Flask实现复杂的参数就需要自己自定义转换器来实现了,而不能向Django那样直接使用正则表达式
Python进阶者 Python进阶者
1年前
有没有python在flask框架下开发的实际案例?
大家好,我是Python进阶者。一、前言前几天在Python钻石交流群【进击的python】问了一个Pythonweb开发的问题,问题如下:各位大佬,有没有python在flask框架下开发的实际案例???求分享二、实现过程git上肯定是有的,这里【NUS