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)

大家都在看

  • 解决 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8

    最近稍微有点空,就新建了一个工程打算捣鼓点新的东西。 新建完一个新的工程之后,发现assembleRelease,包括编译都报错了,具体报错的信息如下 * What went wr…

    Python 2023年11月9日
    049
  • 2022年终考核经验教训

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年9月15日
    057
  • Python爬虫:和我一起学习scrapy(五)

    大部分人的身上,有一种近乎无解的矛盾—— 想要养成早起的习惯,却一不小心刷手机到凌晨两点;看到一篇干货文章,第一反应是加收藏夹下次再看(收藏从未停止,学习从未开始。/ 收藏==学会…

    Python 2023年10月6日
    028
  • python的flask前端显示图片_Python flask框架如何显示图像到web页面

    中,你可以使用模板引擎来将数据传递给 。常用的模板引擎有 Jinja2 和 Mako。本文以 Jinja2 为例进行说明。 首先,在 中,你需要在路由函数中获取要传递给 的数据,然…

    Python 2023年8月14日
    074
  • python-tkinter小程序之数独游戏

    提前透露: 大家好,我是涵子。看到了上面的图片了吗? 一看就知道:这不就是一个数独吗?今天我要为大家带来tkinter-gui版的数独! python小游戏:建议你去看一看哦~(都…

    Python 2023年9月23日
    071
  • 迪士尼评论分析代码

    import spacy import numpy as npimport pandas as pdimport os from self import self for dirn…

    Python 2023年8月8日
    036
  • matplotlib 画图刻度尺控制

    刻度尺(ticks) 控制分两部分: 1. 刻度范围的控制 最方便的方法是导入官网推荐的如下库: 导入库 from matplotlib.ticker import (Multip…

    Python 2023年9月4日
    055
  • Python框架对比,Flask和FastAPI选择哪个?

    相信不少Python新手听到性能速度能与go相比的Python高并发FastAPI框架后跃跃欲试,试了后又觉得似乎体会不到什么,毕竟我们的服务影响因素很多。今天我本地搭建了简单的接…

    Python 2023年8月12日
    042
  • Python可变与不可变数据、深拷贝与浅拷贝

    当一个数据的值发生变化,如果它的内存地址没有发生变化,就说明这是一个可变数据。反之就是一个不可变数据。也就是说,不可变数据的值进行修改,其在内存上的变化就是重新开辟一个新的内存空间…

    Python 2023年5月24日
    059
  • 【Web开发】Python实现Web服务器(Django)

    🍺基于Python的Web服务器系列相关文章编写如下🍺:11. 🎈【Web开发】Python实现Web服务器(Flask快速入门)🎈12. 🎈【Web开发】Python实现Web服…

    Python 2023年8月11日
    052
  • Python之如何使用pandas操作Excel表

    目录 1、前言 2、读取Excel 3、对Excel进行操作 3.1、获取行号、列名 3.2、获取单元格的值,并循环输出 3.3、对空值进行处理,替换 3.4、增加一列,并对新增列…

    Python 2023年8月24日
    0129
  • 深度学习 带GPU的pytorch 的安装及Conda 的配置

    此篇文章以解决实际问题为主,无多余修饰,直接操作。 前言 本文主要是记录在安装带GPU的pytorch过程中遇到的一些报错,torch.cuda.is_available() 的时…

    Python 2023年9月8日
    043
  • 粒子群优化算法python实现

    文章目录 前言 一、粒子群优化算法是什么? 二、算法流程 三、算法的python实现 实验结果 前言 首先简单介绍粒子群优化算法,粒子群优化算法的python实现(含代码) 一、粒…

    Python 2023年8月2日
    056
  • 这里聊聊扫地机的 IOT 开发

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/Xszi1YFxVqpJ7OcOt-lrqw 消费…

    Python 2023年10月22日
    036
  • Linux基本命令(3)

    Linux基本命令(3) 📟作者主页:慢热的陕西人🌴专栏链接:Linux📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要讲解了最后一部分常用的Linux指令和一些热键,另外还介…

    Python 2023年8月9日
    076
  • python to datetime_python-pd.to_datetime或解析日期时间不适用于我…

    我从csv文件中提取了下表 Date,Time,CO2(ppm),CellTemp(c),CellPres(kPa) 10/08/2016,13:21:11,356.89,51.0…

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