Web 开发用哪个框架好?Flask vs.Django

开发 架构
对于初学者来说,找到一个好的框架来学习或者项目开发都是非常有必要的,而当你有一定开发经验后,你应该选择适合当前业务需要的框架。

[[264047]]

前言

对于初学者来说,找到一个好的框架来学习或者项目开发都是非常有必要的,而当你有一定开发经验后,你应该选择适合当前业务需要的框架。

我这里并不想探讨哪个框架好哪个不好,这个永恒的话题就跟探讨"世界上哪种编程语言最屌"是一样的。

分析

面对一个项目需求,不要着急去开发,学会控制开发成本的前提是明白技术难点可能带来的额外的时间消耗。

对于我这种中级Python开发人员来说,并没有实质上的项目经验,没有开发过大型的线上项目,无非是爬虫写了一堆又一堆,本质上跟初学者差别不大,充其量也就算一个编码经验丰富的码农而已。所以在遇到难度相对较大的项目需求时,往往会纠结该如何选择框架上,这也会浪费掉大量的时间。

选择

所谓项目的难度大,要么是业务类型繁多,业务逻辑复杂。要么是涉及到一些扩展功能,比如需要调用系统的shell命令、串口通信等等。前者没有技术难点,仅仅是业务复杂,考虑到后期项目扩展,可能需要一个良好的系统架构。对于后者来说,可能存在难以实现的技术难点,要想搞定所有的技术难点,需要重新学习对应的知识,包括后面的代码测试,环境模拟测试等等一系列操作,这个时间是很难估算的。

Python web框架里面比较出名的Django和Flask的选择很是让人头疼。

在初学Python web的时候,很多老手都推荐学习Django,原因是因为Django相对比较完善,功能非常强大,有点像著名的ThinkPHP框架。老手们说的并没有错,但是这样一开始就入手一款重量级框架可能不是一个好的开始。

Django框架的强大就肯定意味着它是一款重量级框架,而对于初学者来说,这可能是一种灾难。如果初学者没有其他语言的基础,没有后端开发的经验,那么这种方式可能直接就导致放弃。

Python web的入门,使用web.py是非常好的选择。不管是Django还是Flask,他们设计的基础都是web.py。不同的是Django设计的更复杂,更像是一间做好硬装的房子,你只需要稍微做一下软装,布置一下家具就能把整个房间设计的很漂亮。

Flask就不太一样了,它仅仅帮你做好了建房子所需要的材料,房子如何搭建,如何装修全都得靠你自己动手,所以同一个项目,使用Flask来做,不同的人可能设计出来的架构完全不同,而使用Django框架做出来的架构可能都差不多了。

对于用过MVC框架的开发者来说,上手Django是很快的,因为Django也是MVC模式。Flask就没有什么模式可言了,仅仅提供了一种服务而已,要搞成什么样子全靠自己。所以如果你想自己去设计目录结构,模块的划分等个性化设计时,推荐使用Flask。弊端也很明显,如果你不是一个经验丰富的开发者,你很可能会把整个项目架构设计的乱七八糟。

对于我来说,很多时候一个项目刚开始并不觉得是个大项目,做到后面功能越来越多,扩展越来越多,就变成了一个大项目,而使用Flask就很容易的完成这个任务,小型项目快速开发,大项目设计灵活。

责任编辑:武晓燕 来源: 企鹅号 - 编程派
相关推荐

2017-09-11 10:55:22

PythonWeb框架

2022-06-27 17:46:53

PythonFlask

2023-04-28 08:28:14

FlaskDjangoPython

2023-10-09 18:17:52

Python语言Web

2023-08-27 15:10:29

Django和Flask框架

2019-05-15 13:48:17

PythonDjangoFlask

2021-12-06 09:00:00

开发WebDjango

2012-03-02 09:12:54

jQuery MobijQTouchSencha Touc

2021-07-28 06:51:08

FlaskPythonWeb

2017-11-29 14:48:01

Node.JSRails语言

2021-08-15 21:36:00

框架开发JavaScript

2012-03-15 15:35:51

iUI框架EclipseiOS Web

2023-06-13 13:38:00

FlaskPython

2018-12-03 08:25:24

2023-03-27 15:07:27

PythonWeb 开发编程语言

2021-04-28 07:03:28

DjangoFlaskFastAPI

2011-09-05 13:45:25

jQuery MobiSencha Touc移动Web UI框架

2023-10-08 13:42:00

Python Web框架

2012-03-07 14:32:41

Node.js

2010-02-01 11:03:51

Python Djan
点赞
收藏

51CTO技术栈公众号