想学习python做后端,有人推荐django有人推荐flask,二者有啥区别呢
django是一个功能全面的开发框架,自己就包含了模板、对象关系映射(ORM)、数据库访问、权限控制等等开发一个应用所需的大部分功能。可以说学会了它,基本上就可以用Python做东西了。不过相应的,django的缺点就是比较重,如果你要做的东西不是很大,可能会感觉用django就是大炮打蚊子。
flask就相对轻量级很多了,专注于处理http的这些基本功能。如果你只想弄几个网页,后台套点SQL,可能flask就是最适合的了。不过用flask也不用太担心用起来不方便,现在有很多针对flask开发的模块,协助完成数据库、权限、等等各方面。你用到什么功能,就去寻找对应的flask模块导入到项目中。这样项目不会很大,而且开发也很方便。
当然如果有余力的话,最好两个都学一学,作为Python web领域几个最著名的框架,学了肯定对自己的技术有很多帮助的。
1、Django是一款重量级的Python开发web框架,功能齐全,不同的人用Django来开发,开发出来的东西基本架构都是一样的,但是Flask是一个轻量级的web框架,相对来说更加灵活,每个人开发出来的东西架构可能完全不一样,
所以对于团队级别的大型项目来说,比较适合选择Django,因为整个团队比较容易达成一致的架构,不会陷入无休止的会议讨论,里面很多东西不需要自己设计,拿来即用,快速开发。
而对于个人开发的小项目来说,也可以用Django,也可以用Flask,用Flask的话,可以设计自己的项目架构,不必拘泥于Django的固定模式。但是对于经验少的开发者来说,这里就比较困难了
2、Flask对于加深Python学习有很大帮助,因为Flask不像Django很多东西都是现成的,需要自己去写
3、Django对新手来说比Flask容易上手,正是因为灵活性的>缘故原由/p>
Flask
Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过
- Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库
- 入门简单,即便没有多少web开发经验,也能很快做出网站
- 非常适用于小型网站
- 非常适用于开发web服务的API
- 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验各方面性能均等于或优于Django
- Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库
- Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一
- Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
- Flask比Django更加Pythonic,与Python的philosophy更加>符合br/>
Django
jango太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高
- Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
- Django的自带ORM非常优秀,综合评价略高于SQLAlchemy
- Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja
- Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁>山河br/>
- Django目前支持Jinja等非官方模板引擎
- Django自带的数据库管理app好评如潮
- Django非常适合企业级网站的开发:快速、靠谱、>稳固br/>
- Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭
- Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植
- Django上手也比较容易,开发文档详细、完善,相关资料丰富
Django就是一个标配的厨房,电饭煲、微波炉、灶台、洗手盘等一应俱全,有菜就可以做;Flask是一个空间,空间旁边也有电磁炉、微波炉、电饭煲这些,你需要就自己拿过去这个空间里用。如果你想炒个面,可能厨房有点大材小用,你就在空间旁边拿个电磁炉过去用一下就好。当然你用厨房也不是不行,你开心就好。
Python中flask重要吗?有何依据
简单来分享一下我的观点,相对我来说,它是重要的,因为我是初学WEB;
flask是轻量级的WEB框架,总结了以下四点来初步了解一下,:
1、它是使用 Python 编写的轻量级 Web 应用框架。
2、其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。
3、核心简单,用 extension 增加其他功能。
4、Flask没有默认使用的数据库、窗体验证工具。
在python中我们常用的两个WEB框架是:Django和flask;Django是一个重量级的选手,我看了一些教程,还是一头雾水,所以对于新手和初学者来说,比较难上手,flask就不同了,它能很大程序上帮助我们去全面了解WEB,同时对初学者对PYTHON本身的掌握,也起到了很大的重使用,找了一些资料,分享一下老手们是怎么看的:
(1)面向对象编程(Object-Oriented Programming, OOP)相信绝大多数人都接触过OOP,比如使用Java, Python, Go等。在Flask中,涉及基础OOP的概念,包括对象、类、继承、封装等。
(2)python基础Flask中涉及简单python概念,包括模块、包、装饰器、模块等。
(3)命令行基础大部分的开发都绕不开命令行,Flask同样要求基础命令行操作,例如上传服务器、查询文件、修改配置文件等。
(4)数据库基础web开发会产生数据管理的问题,虽然可以使用非数据库的方式搭建静态网页,但从长远来看将,掌握一门基础的数据库工具是很有必要的。比如结构化数据库Mysql, Postgresql,非结构化的MongoDB, Redis等。
(5)前端基础虽然搭建网站主要是后台逻辑编写,但今天越来越多的人在意前台展现,因此Flask除了后台python语言的要求外,还要求掌握基础的html, JavaScript, CSS。
(6)版本控制(增强)版本控制是所有程序开发的基础,了解基础的版本控制可以大大提高开发的效率。掌握基础的git技能会提高Flask网站开发速
从以上这些分享来看,就足以证明它是重要的
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。Flask也被称为 “microframework” ,即"微框架",因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
"微"框架中的“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些 Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。
为什么选Flask?
接下来我们看看他的几大优点:
插件多。查找资料方便
没有太多繁琐的配置>步调/p>
各种中文资料、网友的受虐后的心得文章,查询方便
部署也非常方便
社区非常>活泼/p>
先说结论,没有那么重要。
flask现在算用得多的web框架,但也绝不是像java的spring一样统治级的。因为python没有独大的web框架,并且python主业不是web开发。web开发只是python里面不大的一部分,flask在这个部分里还不是主导。
web一站式的还有django虽然django也不是那么流行,但是一站式的框架确实也有很多开发者爱用。flask相对轻量级,在某些web比例不大的项目里确实很有用,但要开发更大的web项目,不是说不行,但是没那么方便。
重要性很容易判断,你问做java的是否知道spring,再看看pythoner有多大比例知道flask。