Python web 几大框架哪种适合新手?dalao 来发表下自己的高见
如题,花了一段时间学习基础语法,以及一些相关知识,现在想用更上一层楼!
Python web 几大框架哪种适合新手?dalao 来发表下自己的高见
flask 知名度高的前提下 使用更简单
对于新手入门Python Web开发,我首推Flask。
Flask是一个轻量级的“微框架”,核心简单但扩展性强。它没有内置数据库抽象层、表单验证等“全家桶”功能,这意味着你起步时概念更少,能更清晰地理解Web请求(request)、响应(response)、路由(route)这些基础概念。你需要什么功能(比如数据库操作ORM、用户认证),再通过安装相应的扩展(如Flask-SQLAlchemy, Flask-Login)来添加,这种“按需组装”的方式让学习路径非常平滑,不会一开始就被复杂的配置和概念淹没。
相比之下,Django功能大而全,开箱即用,但学习曲线陡峭,它强制你使用自己的项目结构、ORM和模板引擎,新手容易“知其然不知其所以然”。FastAPI虽然现代且性能高,但其深度依赖异步编程(async/await)和Pydantic数据验证等概念,对纯新手来说可能有点“超纲”。
所以,新手用Flask能快速搭建起第一个Web应用,获得正反馈,理解底层原理后,再根据需求转向Django(需要快速构建复杂、标准的管理类应用)或FastAPI(需要高性能API)会更容易。
总结:新手无脑选Flask就对了。
flask 呗,简单易用
flask 上手快一些
flask 或 django
看你的需求和你本身对 python 语言基础。
如果你的 python 语言基础也是小白又想马上撸出来点东西,主要是以内容展示为主的项目,那么选 Django。
如果你的 pthon 基础不错,想做某种服务后端,以 api 为主,需要比较大的灵活度,那么选 flask
flask
以为有很多框架可选,其实也就 flask 和 django。其他的要么太老,要么太新,要么太小,要么太大。
flask,用来做小项目真的很爽
难道不是 tornado,性能好,轻量化,我从 3.0 用到现在 5.0…
方便吗
非常方便,文档齐全,更新迅速,大型开发也不成问题.
详情见官方文档: http://www.tornadoweb.org/en/stable/
入门 flask->进阶 django->高手 flask
flask 就是 Dota 里的 SF,农药里的妲己 ,😄
flask 微框架,
django 大而全的框架,
sanic 性能好,
初学者前两个随便选一个就行,另外 tornado 的时代已经过去了。
楼上+1
我觉得 tornado 的异步网络框架是很强大,非常适合做高并发应用后端。做 web 框架就有点功能上不完善了,特别是异步回调模式不是一般小白能很快上手写代码的,老手都头疼,要是我宁愿用 gevent。
flask 优化后,比 tornado 并发更高。
flask 文档好容易上手。
tornado 不错但是缺少一些常用的辅助功能。
不过现在毕竟是前后端分离的时代了,不要模板的话像是 apistar 这种框架也不妨看看。
另外我以前是 tornado 老用户了,造了一个轮子: https://github.com/fy0/fpage
#16 异步使用 python3
flask 确实很方便,我也刚弄 Python,就用的 flask,易学,简单,文档也 OK
草丛婊???
Tornado 性能确实不错,但是建立在你本身 Python 已经很厉害的基础上。如果是新手,还是老老实实用 Flask 或者 Django 吧。
flask 入门很快, 接下来可以 django,其实主流也就这两个了
你知道的有点多
优化算上 uwsgi/gunicorn 吗?还是优化 flask 本身模块(除了把阻塞任务用 thread 或队列之外,还没怎么优化过其他功能啦)?
gunicorn 启动是必须的
主要还是 gevent + flask 变成协程 ( 加上 gevent 不比 tornado 差,最重要的是不用写 yeid )
celery + redis 作为异步队列
基本就搞定了
本身模块看需求了
2020 就不支持 python2 了,为什么不果断的坐上 python3 的船。当然是 sanic。
flask
没有用 bottle 的吗
新手用 Django,文档很详细,各种 web 开发的坑和最佳实践也写得很清楚了,照着做基本上不会有问题
一上来就用 Flask 的真的不怕被坑?
感觉 python 的框架都是哲学问题,没有对错,找个框架入门好了~
flask 上手快,插件多,但是随着项目的深入,慢慢就是变成一个 django,绝对的
django 一上来就是大而全,但胜在什么都有,什么都不用自己折腾
tornado 这货从一出生就开始用到现在,没有啥好也没啥不好,就是用习惯了。flask 的上手快是以各种插件为代价的,模板你要去找 jinja 吧? orm 要找 sqlachemy 吧?这些都需要你自己去熟悉一下
而且,各种用 flask 和 django 的同学可能忽略了一个基本是事实就是,如果你有工作需要深入到源代码的话,那么 tornado 是一个极好的参考。django 的代码体系复杂而且庞大我就不说了,看 flask 的代码底层还要考虑 Werkzeug,其基于全局变量的 context 处理起来其实也不容易的。
顺便的,部署 tornado 的项目可以少拖一个 gunicorn 或者 uwsgi 之如此类,少很多坑
上面那些提及到性能的同学,完全没有必要进行对比。在 pypy/aiohttp/uvloop 的加持下,不是我非要针对谁,你们说的性能都是垃圾。
关于性能,补充一点:
在 pypy/asyncio/uvloop 的加持下,不是我针对谁,包括你们认为的 NodeJS、GoLang、Gevent 啥的,都是垃圾
有感觉我会被 NodeJS\GoLang 的同学过来喷死,就不说了~
PHP 才是世界上最好的语言!
flask 的 context 确实有点魔术方法,django 里不是也有 CONTEXT_PROCESSORS,是类似的吗?
Tornado 省心很多啊
不推荐 flask 入门,入门重要的是要有一个蓝图,flask 是对后台开发蓝图清楚的人用的,推荐 django, 学了 django 然后又需要可以翻过来学 flask
#32 django 的 context_processors 只是 template 的全局变量吧,跟 flask 不是一个概念的 context
flask 的 context 分为 App context (_app_ctx_stack) 和 Request context (_request_ctx_stack),理解好这两个概念就是 flask 的关键。flask 基于 werkzeug 的 LocalStack 实现了很精巧的 应用(app) 和 请求(request) 的 context,像 flask g 这样的全局变量好用是好用,要是你想问个为什么,恐怕没有几个自认为懂得 flask 的人答得出来
因为懂得 flask 背后的原理,我反而觉得 tornado 这样的用 class 来构建 context 的框架更加方便理解,至少跟别人解释起来,真心比 flask 这背后的 LocalProxy 好理解~
用 bottle 写过一个应用后端,非常喜欢这个框架,小巧方便
#34 蓝图好用
我用 flask 做过一些项目,觉得 flask 的设计是非常精妙的,既可以用来做小项目,也可以使用蓝图,引入各种扩展来用来做大项目。从代码角度来说,也适合由浅入深的学习,可以通过它了解“什么是一个 web 框架”,也可以深入到源码中,理解其 context 的设计原理。
既然楼主是新手,建议随便找一个框架( django、flask、tornado )深入理解,然后再对比着学习另外两种,选择上不用太纠结,反正都不了解,那就随便找一个了解好了。
最近有个任务就折腾了下 flask 和 django,个人体会 django 比 flask 稍微好一点,flask 精简,django 全面直接有登录后台权限系统,用起来十分方便。
这个以前还真用过写一些运维小工具接口什么的。本质上 flask 就是从 bottle fork 出来的那个装饰器路由方式完全一样。就是因为 flask 作者当年想让 bottle 作者加功能,但是 bottle 作者就是想保持一个文件的框架不同意改,于另起炉子了。不信你拿 bottle 那个 hello world 用 flask 来跑都不用改。
明白,就是说 django 大包大揽,自产自销,用不着 App context 这样的可拔插设计(把 flask 的 app.app_context().push()理解成可拔插设计),可以这样理解吗?
django 适合新手,成熟方便
flask 有一定经验的,灵活易用
tornado 适合看代码学习……写的很赞
推荐 bottle。麻雀虽小五脏俱全,不用折腾插件~
学会 bottle 再转 flask 也不迟
必须是 Flask 写接口真的是杠杆的
一直在用 bottle+gevent
对于只提供 api 而言 flask 也很重
如果你有其他语言成熟 web 框架经验的话,推荐 flask,否则请使用 django,我已经看过太多新手用 flask 入手,然后写出来的项目代码结构不堪入目的…
前段时间临时搞一个 web 项目,简单学了下,用的 nginx+gunicorn+gevent+flask+celery,感觉挺好用,一天就上手。。
哥们,眼熟你,你的 id 事名字缩写吗,我的是 fyx…哈哈哈哈
#48 没错 2333
flask 不错,推荐个 flask 入门的教程:
http://xc.hubwiz.com/course/562427361bc20c980538e26f?affid=20180331v2ex
有人用 aiohttp 嘛
作为一个新手,学了 3 个月 python,然后自己看视频和看资料学习 django
然后现在在刚刚入职一个月,在做 flask。。。。。
求问您主要掌握了什么 python 知识,您是计算机专业的吗,应届生还是社招?很想知道能入职大概的要求是怎么样的。希望能传授一些经验
月经贴
Bottle
是也乎 ╮(╯▽╰)╭
不解释…
不好意思,之前你的回复刚好在我的消息通知下一页,没注意到
我是通信毕业的,毕业后加入了一家比较大的公司做网络运维,觉得不适合自己,在上班空余的时候就自学,入职不到半年就辞职了,在职期间零零散散学了 2,3 个月 python,然后辞职后,自己学习了 django 二个月,就硬着头皮去面试了。
大概就掌握了 mysql,计算机网络,还有一些 web 知识和 python 知识,当然还有大学的一些基本的编程基础,其实,觉得找份工作不会很难,主要是好与不好,如果没有很多的资本,我觉得就不要太挑剔公司,为了入个门最重要~

