Flask与Django哪个更好用?

2020-03-16 19:20发布

5条回答
天天
2楼 · 2020-04-30 20:52

django的功能更强大一些, flask是个轻量级的框架, 开发容易意味着功能少.

春风
3楼 · 2020-05-29 10:50

Flask和django的选择要根据项目决定,Django相对开发更容易一点,Flask被称为微框架,只封装了请求的内核,大部分功能需要手动开发。

灰机带翅膀
4楼 · 2021-08-26 14:05

Flask是一个由Python语言写成的轻量级Web框架,最早由奥地利人Armin Ronacher于2010年发布。Flask最显著的特点是它是一个“微”框架,轻便灵活,但同时又易于扩展。默认情况下,Flask 只相当于一个内核,不包含数据库抽象层(ORM)、用户认证、表单验证、发送邮件等其它Web框架经常包含的功能。Flask依赖用各种灵活的扩展(比如邮件Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy)来给Web应用添加额外功能。Flask的这种按需扩展的灵活性是很多程序员喜欢它的地方。Flask没有指定的数据库,可以用MySQL,也可以用 NoSQL。


Django是一个开源的Python Web应用框架,采用了MVT的框架模式,即模型M,视图V和模版T,最早于2005年发布。Django被认为是"大而全"的重量级Web框架,其自带大量的常用工具和组件(比如数据库ORM组件、用户认证、权限管理、分页、缓存), 甚至还自带了管理后台Admin,适合快速开发功能完善的企业级网站。Django自带免费的数据SQLite,同时支持MySQL与PostgreSQL等多种数据库。


流行度


Flask和Django均是当今最流行的Python Web框架。截至2019年9月2日,Flask在Github上的星数是46179颗,Django的Github星数是43806颗,两者几乎难分伯仲,其它Python Web框架与Flask和Django星数相差甚远。考虑到Django早发布5年,而Flask在星数上还领先2000多颗,由此可以得知Flask当前略微占优。


从应用上来说,Flask与Django均广泛用于Web应用开发。利用Django开发的著名网站包括Pinterest, Disqus, Eventbrite, Instagram and Bitbucket。不过最近Pinterest改用Flask开发它的API了。其它利用Flask开发的项目包括 Twilio, Netflix, Uber和LinkedIn。Django似乎更多用来开发常规网站,而Flask经常用来开发API(比如Pinterest和Twilio)。(注:这点可以理解。如果只需要开发Web API,Django自带的大而全的网站功能很多用不上,比如缓存和管理后台。)


性能


两者差不多。有些人会说Django会因"大而全"更慢些,其实这是Python的锅。网上有人测试对比过Flask和Django的性能,两者速度差不多,并无本质差异。


项目结构


Django项目的结构布局是刚性的,每个人写的项目结构最后都差不多,你可以清楚地知道在哪个APP的哪个文件夹里找到哪个文件(media目录, static目录, template目录,views.py, models.py, forms.py, etc)。在项目结构上,Flask是很灵活的,你可以随意地组织自己的代码,1000个APP说不定就有有1000种组织代码的方式。不同的人之间因为习惯不同可能导致最后项目结构布局差异很大, 造成后期代码难以阅读和维护。如果大家都严格遵循Flask推荐的代码布局,那么你会发现最后将得到和Django类似的项目结构布局。


文档与社区


Django的文档要更丰富些,目前总的社区人数要更大点。Overstackflow上Django的问题与回答数大概是Flask的3倍以上。不过Flask社区目前也在成长,且速度惊人。


如何选择?


Django和Flask各有利弊,如何选择?其实古人早有答案,杀鸡焉用牛刀。如果你只需要开发一个轻量级网站或者特定的微服务(比如API),你根本用不上Django自带的大而全的组件和功能,这时你应该毫不犹豫地选择Flask。当你想尝试新的技术时,使用Flask也会是个更好的选择,轻便而灵活。如果你的开发项目目标明确,就是要开发包含各种功能的传统企业级网站(比如电商,新闻内容管理,社交网站,办公OA),使用Django能帮你节省不少寻找或开发第三方扩展的精力。开发企业级网站通常由一个团队来进行,Django可插拔式的APP设计思想和刚性的项目结构便于团队后期维护项目代码。从个性上而言,如果你喜欢自由灵活,你就选Flask。如果你是结果导向型且怕麻烦的,建议直接Django。



小橘子
5楼 · 2021-10-18 09:40

       flask和Django是Python爆火的框架,用途广、功能多、优势突出,深受大家的喜欢。那么flask对比Django框架,哪种更好呢?我想大家都有这样的疑问,通过这篇文章为大家讲解一下。

  什么是Django?

  Django的开放式方法使用Python开发人员可以更轻松地创建web应用程序,而无需提前对基础架构做出决策。Django用于数据库管理、模块、路由、表单以及更多内置的网络附加组件。

  Django是Python的高级框架,推崇干净、务实的设计和快速开发,Django由经验丰富的开发人员创建,可帮助您专注于编写应用程序,无需做很多基础工作。而且Django框架同时具有可扩展性和灵活性,允许开发人员根据需要更改模块。

  什么是flask?

  flask是Django之后开发的,被视为一个微框架,因为它不需要库作为工具来充分利用它。flask确实允许用户自行使用他们的数据库的以及如何将这些数据库添加到他们的框架中。

  flask通常用于较小的项目,对于初学者,建议使用flask框架,它具有更简单的界面。

  flask和Django如何选择?

  如果专注于制作最终产品,可以使用Django,尤其是制作电商、博客、新闻网站这样的应用程序,Django提供了一种以简化方式完成项目的方法。

  而有些人喜欢flask,是因为它增加了控制力。跟Django不同,不需要使用一种方法为您的站点创建应用程序。


IT学习助手 - qq:2676427015
6楼 · 2021-11-06 10:15

  基于 Python 的主要应用程序是使用命令行界面创建的,可以在命令提示符或 shell 脚本上运行。当然,人们希望使用 Python 做更多事情,而不仅仅是自动执行任务和管理工作流程。因此,Web 框架顺势而生。

  Django 是一个 Python Web 框架,适合具有开发时间限制要求的完美主义者。Django 提供功能齐全的模型 - 视图 - 控制器框架。它的开发基于“内置电池的方法”(译者注:Django 自带全套工具,可以开箱即用),使开发人员无需第三方库和工具即可创建网站。随着 2005 年 7 月 15 日的第一次发布, Django 由 Django 软件基金会(DSF)开发和管理。它是免费且开源的,已经发布了许多个版本。

   Flask是一个轻量级的 Python 框架(微框架),它基于一次完成一件事并做得很好。随着 2010 年 4 月 1 日的首次发布,Flask 由奥地利开发商 Armin Ronacher 开发。正如其文档中所描述的那样,微观框架意味着 Flask 旨在保持其轻量级的简单性和可扩展的使用。Flask 的真正力量在于它具有灵活性。

  Flask 与 Django 两者之间的对比,下面是 Django 和 Flask 的深入比较,从如下几方面来对比:

  受欢迎度:使用率和案例

  入门文档和导航的易用程度

  模板引擎和系统

  路由系统

  用户灵活性

  管理系统的可用性

  开发速度

  受欢迎度:使用率和案例

  几个顶级网站使用 Django 和 Flask。来自 GitHub 和其他网站的统计数据表明,Django 比 Flask 更受欢迎。这种受欢迎程度仅限于开发人员使用 Django 强大的功能来快速构建和部署复杂的 Web 应用程序。同样,开发人员使用 Flask 来加速使用固定内容的网站的开发。由 Django(Bitbucket,Eventbrite,Instagram,Pinterest等)和 Flask(LinkedIn,Netflix,Twilio,Uber)提供支持的一些知名项目积极使用这些框架。

  用户灵活性,两个框架之间最大的区别之一是灵活性。

  Django 的 内置电池 概念有助于开发人员在没有第三方库和工具的情况下创建各种 Web 应用程序。但是,Django 缺乏对提供的模块进行更改的选项。因此,开发人员使用内置功能创建 Web 应用程序。这意味着如果开发人员想要为 Django 已经提供的功能使用不同的库,那就不容易了。

  相反,Flask 使用其可扩展的 Web 框架,使用各种 Web 开发库和工具实现 Web 应用程序的灵活开发。这使得更有经验的开发人员可以自由地使用他们熟悉的库和数据库进行即插即用。不会被框架强迫你使用的东西所困扰。相反,您可以转向您熟悉的技术组件。



相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问