Django和Flask的区别

1.形象类比

如果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,你想得到的功能它都有,想不到的功能它也有。

python flask与django的区别_真正搞明白Python中Django和Flask框架的区别相关推荐

  1. python实现异步的几种方式_终于搞明白了,异步Python比同步Python究竟快在哪里?...

    大家好,你是否听人们说过,异步 Python 代码比"普通(或同步)Python 代码更快? 果真是那样吗? 同步和异步是什么意思? Web 应用程序通常要处理许多请求,这些请求在短时间内来 ...

  2. webpack打包生成的map文件_一站式搞明白webpack中的代码分割

    上次分析到通过devtool的配置项来设置source map,在线上环境可以通过设置成cheap-module-source-map来生成单独的map文件,但是map文件在线上环境会不会每次都加载呢 ...

  3. 一文搞明白Python并发编程和并行编程

    目录 前言 一.基础知识 1.并行和并发 (1)定义 (2)联系 2.进程.线程和协程 (1)定义 (2)联系 3.生成器 (1)yield (2)send, next (3)yield from 4 ...

  4. python flask和django_真正搞明白Python中Django和Flask框架的区别

    在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题. 一.为什么要使用框架? 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应 ...

  5. python的django_真正搞明白Python中Django和Flask框架的区别

    在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题. 一.为什么要使用框架? 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应 ...

  6. jupyter notebook和python有什么区别_如何在Jupyter Notebook中使用Python虚拟环境?

    如何在使用Jupyter Notebook时,解决Python虚拟环境间的切换问题?本文一步步帮你拆解.希望你能够避免踩坑的痛苦,把更多的时间花在愉快的编程上. 痛点 Python目前有两个主版本并存 ...

  7. python与vba的区别_选择VBA还是Python?

    首发 公众号 :EXCEL办公实战 到底是VBA,还是Python? 类似的话题,还有操作EXCEL学者Python,还是VBA 现在学习VBA还值吗?是否过期等! 这些问题,有很多粉丝在问,在知乎. ...

  8. python与大数据是什么_大数据和python有什么区别

    大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才 能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化 ...

  9. python开发面试问题及答案_集锦 | 53个Python面试问题 答案打包带走

    作者丨Chris来源丨AI科技大本营(ID:rgznai100)链接丨https://towardsdatascience.com/53-python-interview-questions-and- ...

最新文章

  1. 3.7 测试时的 BatchNorm-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  2. python入门之控制结构-循环结构_Python 入门之控制结构 - 循环结构(一)
  3. 洛谷P1155 双栈排序
  4. php member limit,php 安全有关问题
  5. 推荐一个好用的Chrome扩展应用,管理新建标签页面的
  6. xml编辑 html_【c# .net】Xml读写操作(XmlTextReader 类)
  7. Makefile赋值符号的使用——= := ?= +=
  8. SQLITE3 使用总结(2)[ZT]
  9. 解决kaggle邮箱验证不能confirm的问题
  10. 华为交换机 查ip冲突_华为交换机:如何解决网络中IP地址发生冲突故障?
  11. mfc 制作不同的文档模板mdi不同的子窗体_法律行业python教程——利用python批量制作律师函...
  12. json例外被抛出并且未接住
  13. 微信小程序简易音频播放器(wx.getBackgroundAudioManager())
  14. 详解互联网平台的资金系统方案 自建支付清结算系统优势明显
  15. 操作系统——处理系统的分类
  16. 牛牛的算术(公式推导)
  17. Redis4.0、5.0、6.0、7.0特性整理(持续更新)
  18. vb读取计算机mac地址,Re:在VB中如何取得网卡的mac地址?
  19. 每天学习十分钟1之心路历程
  20. 交叉线、直通线背后掩藏着什么?

热门文章

  1. 如何使用CloudStats监控Linux服务器
  2. 2016年ICT产业趋势预测
  3. 聊下 git 使用前的一些注意事项
  4. tracert 路由跟踪程序
  5. OS存储器管理(一)
  6. 第十一章 异常,日志,断言和调试
  7. 用opencv抽取视频的帧并保存为连续的图片
  8. 【计算几何】多边形点集排序
  9. (转)IIS7 配置ASP.NET 2.0, WCF, ASP.NET MVC
  10. 企业架构 - 如何实施TOGAF