当前位置: 首页 > news >正文

【Python--Web应用框架大比较】

🚀 作者 :“码上有前”
🚀 文章简介 :Python
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬

Django

  • Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高
  • Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
  • Django的自带ORM非常优秀,综合评价略高于SQLAlchemy
  • Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja
  • Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山
  • Django目前支持Jinja等非官方模板引擎
  • Django自带的数据库管理app好评如潮
  • Django非常适合企业级网站的开发:快速、靠谱、稳定
  • Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭
  • Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植
  • Django上手也比较容易,开发文档详细、完善,相关资料丰富
  • Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

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更加吻合

Django: 大而全,有一套完整的框架,但是耦合性高。Auth,Permission,admin基本没用
开发快,符合MVC模式
Flask: 微框架,很小巧。一个脚本就可以启动一个web项目,需要哪些功能,自己装。需要熟悉MVC模式

相关文章:

  • Spring Boot + flowable 快速实现工作流
  • TCP和UDP面试题提问
  • 100条经典C语言题第一天(1-10)
  • 静态时序分析:SDC约束命令set_clock_transition详解
  • 网络原理-TCP_IP(6)
  • 交通管理|交通管理在线服务系统|基于Springboot的交通管理系统设计与实现(源码+数据库+文档)
  • 云计算基础-虚拟化概述
  • 【Linux】指令 【scp】
  • 07-k8s中secret资源02-玩转secret
  • 【Linux】指令 【whereis】
  • 7.JS里表达式,if条件判断,三元运算符,switch语句,断点调试
  • 嵌入式Qt Qt中的信号处理
  • 定点数,定点数二维向量,定点数三维向量,定点数数学类
  • C语言——oj刷题——获取月份天数
  • 蓝桥杯第十四届电子类单片机组程序设计
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • iOS | NSProxy
  • Javascript Math对象和Date对象常用方法详解
  • JDK9: 集成 Jshell 和 Maven 项目.
  • React中的“虫洞”——Context
  • Redis学习笔记 - pipline(流水线、管道)
  • Spring Cloud Feign的两种使用姿势
  • uni-app项目数字滚动
  • uva 10370 Above Average
  • Windows Containers 大冒险: 容器网络
  • 聚类分析——Kmeans
  • 码农张的Bug人生 - 见面之礼
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 小程序开发中的那些坑
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 怎么将电脑中的声音录制成WAV格式
  • NLPIR智能语义技术让大数据挖掘更简单
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 如何正确理解,内页权重高于首页?
  • ​用户画像从0到100的构建思路
  • #if 1...#endif
  • #微信小程序:微信小程序常见的配置传值
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (2)STL算法之元素计数
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (4)事件处理——(7)简单事件(Simple events)
  • (动态规划)5. 最长回文子串 java解决
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)Linux+Windows下安装ffmpeg
  • (转)Windows2003安全设置/维护
  • .Net Redis的秒杀Dome和异步执行
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .net6 webapi log4net完整配置使用流程
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • ??myeclipse+tomcat
  • @Documented注解的作用
  • [ C++ ] STL---string类的模拟实现