Python Web框架Django 和 Flask区别及使用_python flask和django-程序员宅基地

技术标签: python  django  python小知识  pycharm  人工智能  flask  

Django和Flask是最流行的Python Web框架

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

 Flask诞生于2010年, 使用python语言基于Werkzeug工具箱编写的轻量级Web开发框架
    Flask本身相当于一个内核, 其他几乎所有的功能都要用到扩展(邮件:Flask-Mail, 用户认证:Flask-Login, 数据库:Flask-SQLAlchemy).
    Flask的核心在于Werkzeug(路由模块), Jinja2模板引擎.

# Flask的"轻"
    Flask的"轻", 不代表其功能不够强大, Flask拥有丰富的扩展, 其依赖于扩展来给应用添加功能, 众多的插件提供了数据库集成, 表单验证, 上传处理,各种各样的开放认证技术等, Flask的这些特性使得它在web开发方面变得非常流行
    # 注意: 如果构建大型项目, 使用很多扩展, Flask也会变的跟Django一样的重.

基本介绍与特色

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

如何选择?

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

Django:

Python Web框架里比较有名当属Django,Django功能全面,它提供一站式解决方案,集成了MVT(Model-View-Template)和ORM,以及后台管理。但是缺点也很明显,它偏重。就像是一个装潢好的房子,它提供好了你要用的东西,直接拿来用就可以。

Flask:

Flask相对于Django而言是轻量级的Web框架。和Django不同,Flask轻巧、简洁,通过定制第三方扩展来实现具体功能。

可定制性,通过扩展增加其功能,这是Flask最重要的特点。Flask的两个主要核心应用是Werkzeug和模板引擎Jinja.

Python常用框架Flask和Django的内容已经讲完啦,不知道你看懂了多少?今天就先到此为止吧。明天我还会继续分享Python干货,记得来学习哟。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/justzcy/article/details/124434210

智能推荐

编辑环境变量的path内容不展开问题_系统变量path点击编辑不展开怎么办-程序员宅基地

文章浏览阅读5.8k次,点赞28次,收藏37次。编辑环境变量的path内容不展开问题自己在修改环境变量时将%…开头的变量上移到了顶部,而系统默认的则是以C:\...开头的环境变量。如下所示:将红色框内的环境变量后移置C:\...之后,点击确定后再打开path内容就可以展开了。开头的环境变量向后移,以。_系统变量path点击编辑不展开怎么办

Python爬取B站TES VS FNC 八强赛弹幕,全网最具深度的三次握手、四次挥手讲解-程序员宅基地

文章浏览阅读451次,点赞23次,收藏17次。获得返回数据,可以利用正则匹配弹幕信息获取了弹幕信息保存到本地即可爬虫完整代码import rewith open(‘八强赛弹幕.txt’, mode=‘a’, encoding=‘utf-8’) as f:f.write(i)发现一共才 14行代码就搞定了~这只是爬取10月17日当天的弹幕数据,根据日期的变化可以改变日期参数,就可以达到爬取多页的数据了既然爬取了弹幕,就这样,还是有没有什么感觉,咱们可以对弹幕进行词云分析~词云图。

377-logger日志系统设计与实现_logger如何设计-程序员宅基地

文章浏览阅读652次,点赞2次,收藏2次。logger日志系统的设计图中画圆圈的是我们实现的mprpc框架,这个框架是给别人使用的,把本地的服务发布成远程的RPC服务,框架里最重要的两个成员就是RpcProvider和RpcChannel,他们在运行的过程中会有很多正常的输出信息和错误的信息,我们不可能都cout它们到屏幕上,因为运行时间长了,屏幕上输出的信息特别多,如果万一有什么问题,我们也不好定位,真正用起来的话不方便。所以,一般出问题,我们最直接的方式就是看日志!!!日志可以记录正常软件运行过程中出现的信息和错误的信息,当我们定位问题,_logger如何设计

MongoDB详解(有这一篇就够了)-程序员宅基地

文章浏览阅读4.1k次,点赞6次,收藏23次。MongoDB 是由C++语言编写的,基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品,是最接近于关系型数据库的NoSQL数据库。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组类似于MongoDB优点:数据处理能力强,内存级数据库,查询速度快,扩展性强,只是不支持事务。_mongodb

两种内存池管理方法对比_非固定大小的内存池-程序员宅基地

文章浏览阅读1.9k次,点赞4次,收藏11次。目录一、问题背景二、两种内存池管理2.1 固定大小内存块分配(参考正点原子STM32F4 malloc.c)2.1.1 初始化2.1.3释放原理2.2 可变大小内存块分配(参考WSF BLE协议栈buffer management)2.2.1 初始化2.2.2 分配原理2.2.3 释放原理三、总结和对比一、问题背景最近在调试ambiq apollo..._非固定大小的内存池

MPEG TS流简介-程序员宅基地

文章浏览阅读3.1k次。TS简介MPEG-TS(Transport stream)即Mpeg传输流定义于ITU-T Rec. H.222.0和ISO 13818-1标准中,属于MPEG2的系统层。MPEG2-TS面向的传输介质是网络和卫星等可靠性较低的传输介质,这一点与面向较可靠介质如DVD等的MPEG PS不同。1. TS数据包TS流由TS数据包即Transport stream packet组成。TS p...

随便推点

Zookeeper设置访问权限-程序员宅基地

文章浏览阅读1.2w次。[b][size=medium]zookeeper的身份认证有4种方式[/size][/b](1)world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的 (2)auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过ker..._zookeeper 权限信息放哪里

SpringMVC——核心技术:异常处理(@ExceptionHandler、@ControllerAdvice)_spring @exceptionhandler message-程序员宅基地

文章浏览阅读8.7k次,点赞2次,收藏8次。SpringMVC——核心技术:异常处理(@ExceptionHandler、@ControllerAdvice)_spring @exceptionhandler message

操作系统文件系统实验报告16281027_i/o磁盘实验报告-程序员宅基地

文章浏览阅读3.6k次。实验五 文件系统1 实验简介本实验要求在模拟的I/O系统之上开发一个简单的文件系统。用户通过create, open, read等命令与文件系统交互。文件系统把磁盘视为顺序编号的逻辑块序列,逻辑块的编号为0至L − 1。2 I/O系统实际物理磁盘的结构是多维的:有柱面、磁头、扇区等概念。I/O系统的任务是隐藏磁盘的结构细节,把磁盘以逻辑块的面目呈现给文件系统。逻辑块顺序编号,编号取值范围为..._i/o磁盘实验报告

dwd明细粒度事实层设计_dwd层如何设计-程序员宅基地

文章浏览阅读1.8k次。目录1-数仓dwd事实层介绍2-数仓dwd层事实表设计原则3-数仓dwd层事实表设计规范4-建表示例1-数仓dwd事实层介绍明细粒度事实层以业务过程驱动建模,基于每个具体的业务过程特点,构建最细粒度的明细层事实表。您可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,即宽表化处理。公共汇总粒度事实层(DWS)和明细粒度事实层(DWD)的事实表作为数据仓库维度建模的核心,需紧绕业务过程来设计。通过获取描述业务过程的度量来描述业务过程,包括引用的维度和与业务过程有关的度量。度量通常为_dwd层如何设计

Ambari 2.7.3.0 安装部署 hadoop 3.1.0.0 集群视频完整版_ambari2.7.3 hadoop 部署-程序员宅基地

文章浏览阅读1.5k次。一、前言很多小伙伴也都知道,最近一直在做 Ambari 集成自定义服务的教学笔记和视频。之前在准备 Ambari 环境的时候,考虑到有朋友会在 Ambari 安装部署时遇到问题,所以贴心的我呢,就在搭建 Ambari 环境的时候,把这个视频录制好了,总共时长共 87 分钟,将近1个半小时,附带移除 SmartSense 服务及 FAQ 。也提前介绍一下搭建好的 Ambari 相关版本信息:..._ambari2.7.3 hadoop 部署

使用R语言保存CSV文件_r软件保存为csv文件-程序员宅基地

文章浏览阅读881次。本文介绍了如何使用R语言保存CSV文件。我们使用write.csv函数将数据框保存为CSV格式。您只需提供要保存的数据对象和文件路径,即可轻松创建CSV文件。CSV文件是一种通用的数据交换格式,在数据分析和数据处理中广泛使用。希望本文对您有所帮助,祝您在R语言中保存CSV文件时顺利进行数据处理和分析!_r软件保存为csv文件

推荐文章

热门文章

相关标签