python flask与django的区别_真正搞明白Python中Django和Flask框架的区别
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框架的区别相关推荐
- python实现异步的几种方式_终于搞明白了,异步Python比同步Python究竟快在哪里?...
大家好,你是否听人们说过,异步 Python 代码比"普通(或同步)Python 代码更快? 果真是那样吗? 同步和异步是什么意思? Web 应用程序通常要处理许多请求,这些请求在短时间内来 ...
- webpack打包生成的map文件_一站式搞明白webpack中的代码分割
上次分析到通过devtool的配置项来设置source map,在线上环境可以通过设置成cheap-module-source-map来生成单独的map文件,但是map文件在线上环境会不会每次都加载呢 ...
- 一文搞明白Python并发编程和并行编程
目录 前言 一.基础知识 1.并行和并发 (1)定义 (2)联系 2.进程.线程和协程 (1)定义 (2)联系 3.生成器 (1)yield (2)send, next (3)yield from 4 ...
- python flask和django_真正搞明白Python中Django和Flask框架的区别
在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题. 一.为什么要使用框架? 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应 ...
- python的django_真正搞明白Python中Django和Flask框架的区别
在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题. 一.为什么要使用框架? 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应 ...
- jupyter notebook和python有什么区别_如何在Jupyter Notebook中使用Python虚拟环境?
如何在使用Jupyter Notebook时,解决Python虚拟环境间的切换问题?本文一步步帮你拆解.希望你能够避免踩坑的痛苦,把更多的时间花在愉快的编程上. 痛点 Python目前有两个主版本并存 ...
- python与vba的区别_选择VBA还是Python?
首发 公众号 :EXCEL办公实战 到底是VBA,还是Python? 类似的话题,还有操作EXCEL学者Python,还是VBA 现在学习VBA还值吗?是否过期等! 这些问题,有很多粉丝在问,在知乎. ...
- python与大数据是什么_大数据和python有什么区别
大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才 能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化 ...
- python开发面试问题及答案_集锦 | 53个Python面试问题 答案打包带走
作者丨Chris来源丨AI科技大本营(ID:rgznai100)链接丨https://towardsdatascience.com/53-python-interview-questions-and- ...
最新文章
- 3.7 测试时的 BatchNorm-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- python入门之控制结构-循环结构_Python 入门之控制结构 - 循环结构(一)
- 洛谷P1155 双栈排序
- php member limit,php 安全有关问题
- 推荐一个好用的Chrome扩展应用,管理新建标签页面的
- xml编辑 html_【c# .net】Xml读写操作(XmlTextReader 类)
- Makefile赋值符号的使用——= := ?= +=
- SQLITE3 使用总结(2)[ZT]
- 解决kaggle邮箱验证不能confirm的问题
- 华为交换机 查ip冲突_华为交换机:如何解决网络中IP地址发生冲突故障?
- mfc 制作不同的文档模板mdi不同的子窗体_法律行业python教程——利用python批量制作律师函...
- json例外被抛出并且未接住
- 微信小程序简易音频播放器(wx.getBackgroundAudioManager())
- 详解互联网平台的资金系统方案 自建支付清结算系统优势明显
- 操作系统——处理系统的分类
- 牛牛的算术(公式推导)
- Redis4.0、5.0、6.0、7.0特性整理(持续更新)
- vb读取计算机mac地址,Re:在VB中如何取得网卡的mac地址?
- 每天学习十分钟1之心路历程
- 交叉线、直通线背后掩藏着什么?