汪克健 發表於 2019-5-14 11:50:00

真正搞明白Python中Django和Flask框架的区别

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


</div>
<div id="MySignature" role="contentinfo">
    <font color="red" size="2" style="background-color: yellow; font-weight: bold">*******请大家尊重原创,如要转载,请注明出处:
<font color="blue">转载自:https://www.cnblogs.com/keyou1/</font>,谢谢!!*******<br>
*******有任何疑问,欢迎加入软件测试交流群:699968364(加群时,请备注:博客园-可优)。博主QQ:3429173264*******
</font><br><br>
来源:https://www.cnblogs.com/keyou1/p/10861212.html
頁: [1]
查看完整版本: 真正搞明白Python中Django和Flask框架的区别