Python之Flask与Django后端框架详细对比

一、快速介绍 Django

Django是一个Python Web框架,适合时间不多的完美主义者。
Django提供了一个功能齐全的Model-View-Controller框架。
Django使开发人员无需第三方库和工具即可创建网站。
Django于2005年7月15日发布,由Django Software Foundation(DSF)开发和管理,它是免费的并且具有更多版本的开源。

二、快速介绍Flask

Flask是基于Python的微框架 ,Flask是由奥地利开发商Armin Ronacher于2010年4月1日发布的。
微框架意味着Flask旨在保持其重量轻和简单但仍然可以进行高度扩展。
Flask的真正力量在于它非常灵活。

三、Flask与Django,比较与对比

3.1、 流行度:用法和案例
不少顶级网站使用Django和Flask。GitHub和其他站点的统计数据表明,Django比Flask更为流行。
这种流行仅归因于开发人员使用Django强大的功能来快速构建和部署复杂的Web应用程序。
同样,开发人员使用Flask来加速使用固定内容的网站的开发。
Django开发的知名项目(Bitbucket,Eventbrite, Instagram的,Pinterest等)。
Flask开发的知名项目(LinkedIn,Netflix,Twilio,Uber等)。
3.2、用户灵活性
这两个框架之间最大的差异之一就是灵活性。
Django 可在不使用太多第三方库和工具的条件下开发各种优秀的Web应用程序。但是,Django缺少部分对模块优化的空间。因此,开发人员使用内置功能创建Web应用程序。这意味着如果开发人员想要修改Django一些默认的设定或者规则,这将不容易。
相反,Flask是一个扩展性很好的Web框架,可以使用各种Web开发库和工具来灵活地开发Web应用程序。对于经验丰富的开发人员可以自由地插入和使用他们喜欢的库和数据库。 框架很少会强制开发人员使用什么。相反,开发人员可以转到自己喜欢的技术栈中。
3.3、入门:文档和导航轻松
Flask提供了广泛的文档,其中包括部署,安装,快速入门说明以及详细的教程。使用Python的包管理器pip去安装 Flask很容易。

$ pip install flask

上面的pip命令安装Flask及其基本软件包。在Flask上运行代码非常简单(例如,显示” Hi Welcome”)。它所需要做的只是创建Flask类的实例,然后创建显示” Hi Welcome”字符串的路由即可。

from flask import Flask
app = Flask(__name__)
@app.route("/")
    def hi_welcome():
        return "Hi Welcome"
if __name__ == "__main__":
    app.run()

3.4、路由系统
路由系统对于任何Web应用程序或网站都是必不可少的,它可以创建URL并确定在加载URL时显示的内容。

Flask是一个简单,轻量级的Web框架,其route()由装饰器完成。使用上面的” Hello World”示例,第一行是装饰器。装饰器是将可调用(类)作为参数,然后在返回之前进行修改的函数。使用的字符串还告诉Flask什么URL触发其功能。
例如,使用/(http://127.0.0.1:5000 / \),当使用浏览器访问Flask时,它将加载第一页。

对于Django,它采用了包含电池的方法,这使开发人员可以更轻松地完成基本的Web开发任务,例如数据库模式迁移,URL路由和用户身份验证。自定义Web应用程序还提供了自举工具,内置模板引擎和ORM系统,因此在Django中也经历了过程加速。使用urls.py运行内置djangoadmin startproject命令时创建的文件处理路由。要定义路由,需要从Django导入URL方法并创建一个实例,并指定每个参数(关键字参数,现有的URL模块和regex字符串)。默认情况下,该urls.py文件中包含管理网站的内置Django URL 。它告诉Django你从何处加载URL以及指定的模块。
3.5、管理系统的可用性
Django使用遵循对象关系映射器(ORM)目录结构和数据库系统的管理系统。由于多个项目具有相同的目录结构,因此在使用Django进行开发时,它增加了全方位的体验。

Flask缺少这些功能,可能需要你安装自定义模块才能将ORM用作开发人员的可选组件。这些选项包括与MongoDB,SQLAlchemy,SQLite等配合使用。如你所见,这是灵活性和易用性之间的权衡。Django附带了构建网站所需的大多数技术组件。Flask纯粹只是框架,允许最终用户做出更多决策。
3.6、开发速度
Django框架可为复杂的Web应用程序提供快速的开发速度。由于它具有全部功能,提供所有必要工具。
Flask的简单性使经验丰富的开发人员可以在短时间内完成较小的应用程序。
Django框架的一个显着优势是可以有活跃的社区,该社区旨在提供有用的内容来扩展应用程序或使你的工作变得更轻松的解决方案。
Flask社区目前还不那么庞大,因此找到有用的信息并不容易。
3.6、模板引擎和系统
所有Web应用程序都有一个支持用户交互的前端(用户界面)。由于Web应用程序不是静态的,因此它们采用不同的方法来动态生成HTML。Django和Flask都有不错的模板引擎。

Flask是使用Jinja2模板引擎开发的。它是一种现代且设计友好的模板,允许开发人员在集成沙盒环境的帮助下模拟动态Web应用程序。Jinja2模板包含变量和标签。Flask模板的另一个关键特性是模板继承。以下是一些常用的Jinja2语法的示例:

comments: {# ...

variables: {{ ... }}
statements: {% ... %} (Similar to normal programming, Jinja2 statements find usage in a variety of cases, like if-else statements, imports, loops, and macros).

Django使用内置的模板引擎,该引擎允许开发人员轻松定义Web应用程序的面向用户层。此外,开发人员可以使用Django模板语言(DTL)来创建自定义用户界面开发中的模板。Django中的模板语法包括:

single-line comments: {# ...

multi-line comments: {% comment %} ... {% endcomment %}
filters on variables: {{ variable|filter }}
tags: {% ... %}
variables: {{ ... }}

jinja2模板的灵感来自Django模板语言,因此语法相似。Django模板具有模板继承功能,有关更多信息,请参见Django模板官方文档。

四、结论

要开始使用Flask和Django框架,必须对基础知识有更深入的了解。

每个框架的区别和好处在于你希望实施哪种项目。

主要对比包括:

Flask提供了灵活性,简单性和细粒度的控制。
Flask不受限制,让你决定如何实现应用程序。
Django为你的Web应用程序开发提供了管理面板,数据库界面,目录结构和ORM的全方位体验。
我希望这有助于你对所选择的框架做出清晰的决定。

Original: https://blog.csdn.net/liuchaoqi06/article/details/115770274
Author: 栀子花海
Title: Python之Flask与Django后端框架详细对比

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/749634/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Pandas使用自定义函数

    如果想要应用自定义的函数,或者把其他库中的函数应用到 Pandas 对象中,有以下三种方法: 1) 操作整个 DataFrame 的函数:pipe() 2) 操作行或者列的函数:a…

    Python 2023年8月16日
    080
  • 2022-10-15,通过Dockerfile构建Docker镜像并运行

    好了,废话不多说,直接上才艺: 一、准备Dockerfile文件 文件目录: [root@localhost flask]# pwd /root/flask [root@local…

    Python 2023年8月9日
    053
  • 输出分组_python(pandas)分组与聚合统计

    Pandas分组聚合语法:df [Condition1] .groupby ([Column1, Column2], as_index=False) .agg({Column3: …

    Python 2023年8月17日
    051
  • Python 递归函数返回值为 None 的解决办法

    在使用 Python 开发的过程中,避免不了会用到递归函数。但递归函数的 返回值有时会出现意想不到的情况。 下面来举一个例子: >>> def fun(i): ….

    Python 2023年5月24日
    075
  • pytest快速入门

    pytest * – 一、安装及快速入门 – + 创建第一个测试用例 – 二、pytest的前后置 – 三、运行规则 –…

    Python 2023年9月14日
    066
  • pycharm+pygame基于剪枝技术的一字棋博弈系统

    关于包的安装(在terminal端口执行如下命令):pip install pygame。若出现异常参考–>Pygame安装教程pip install numpy…

    Python 2023年9月23日
    055
  • python 关闭窗口_Python窗口打开和关闭

    这是由于 if event.type = pygame.KEYUP: . 打开文件将导致它立即关闭,但在解释器(空闲)中运行它将显示错误。把它改成 if event.type ==…

    Python 2023年9月21日
    078
  • 聊一聊责任链模式

    将一堆”事情”串联在一起,有序执行,就叫责任链 一、概述 责任链模式(Chain of Responsibility Pattern)是将链中每一个节点看作…

    Python 2023年10月16日
    048
  • PyCharm编辑器的python与pip匹配

    pip版本依赖它的python版本,不同版本之间,函数库方法有所调整,版本不一致就可能无法运行。在PyCharm的终端,进行相关的匹配查询及解决。 python 版本查询 命令:p…

    Python 2023年9月3日
    075
  • 【Linux】权限管理

    👑作者主页:@安 度 因🏠学习社区:安度因的学习社区📖专栏链接:Linux 文章目录 一、shell 命令以及运行原理 二、Linux的用户权限 * 1、权限概念引入 2、用户分类…

    Python 2023年9月28日
    048
  • Pandas高级教程之:Dataframe的重排和旋转

    文章目录 简介 使用Pivot 使用Stack 使用melt 使用Pivot tables 使用crosstab get_dummies 简介 使用Pandas的pivot方法可以…

    Python 2023年8月21日
    094
  • Python 部署flask项目+阿里云宝塔(巨详细)

    目录 一、购买阿里云服务器 * ① 选购方法 ② 更换操作系统 二、安装宝塔Linux面板 * ① 进入服务器远程连接 ② 远程连接登录 ③ 安装宝塔 ④ 安装宝塔插件 三、项目部…

    Python 2023年8月9日
    068
  • 龙珠训练营python-Pandas揭秘美国选民的总统喜好

    阿里天池龙珠训练营python数据分析项目 用Pandas揭秘美国选民的总统喜好 链接https://tianchi.aliyun.com/competition/entrance…

    Python 2023年8月9日
    071
  • Python之GUI编程

    一、常用的GUI库 基于tkinter模块创建GUI程序包括如下4个核心步骤: 操作如下: from tkinter import * from tkinter import me…

    Python 2023年8月2日
    051
  • python pandas获取行号_pandas dataframe获取行号并添加到lis

    假设我们有一个panda数据帧,它有三个特性,如下所示。在 每一行代表一个客户,每一列代表这个客户的一些特性。在 我想得到行号并将它们添加到列表中,或者根据它们的特征值不将它们添加…

    Python 2023年8月8日
    085
  • flask学习笔记

    Flask学习目录 入门 * 创建一个flask项目 Jinja – 渲染模板 宏 模板继承 基础语法 路由 – 重定向 url构建 404 基础 * Bo…

    Python 2023年8月14日
    047
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球