Python Web开发主流框架
Web 开发是Python 语言应用领域的重要部分,也是工作岗位最多的领域。如果你对基于Python的Web 开发有兴趣,正打算使用Python 做Web 开发,或者已经是一个Web 开发者有工作需要,要做自动化运维、数据的图形化展示等,那么学习一门基于Python的Web 开发框架是必修课。
Python作为当前最火爆最热门,也是最主要的Web 开发语言之一,在其近三十年的历史中出现了数十种Web 框架,比如Django、Tornado、Flask、Twisted、Bottle 和 Web.py 等,它们有的历史悠久,有的发展迅速,还有的已经停止维护。
Django
- 诞生于2003年,是Python 世界里最负盛名、用户最多、使用范围最广、最成熟的Web 框架,最初被用来制作在线新闻的Web站点。Django 的各模块之间高效集成,提供了丰富的开发工具,以一站式服务闻名,其文档健全,社区活跃,开发者在遇到问题时能迅速找到解决办法。
Tornado
- 一个强大的、支持协程、高效并发且可扩展的Web 服务器,发布于2009年9月,应用于 FriendFeed、Facebook 等社交网站。它的强项在于可以利用异步协程机制实现高并发的服务,但在其它方面则有些薄弱。
Flask
- 诞生于2010年,它吸收了其他框架的一些优点并且把自己的主要领域定义在了微小项目上,以短小精干,简洁明了著称。通常我们在临时需要的时候,会随手写几行代码,使用Flask 快速启动一个Web 网页,做一些验证性的工作。
Twisted
- 它不像前三者着眼于Web 应用开发,而是适用从传输层到自定义应用协议的所有类型的网络程序的开发,并能在不同的操作系统上提供很高的运行效率。
有那么多的Web 框架,我们显然没有精力全都学一遍,也不可能全部精通,必然要有所取舍,那么该如何选择呢?有哪些可以参考的选择依据呢?
- 选择更主流的框架。主流框架的用户多、文档更齐全,技术文献积累更多,社区更繁盛,能得到更好的帮助和支持。
- 选择更活跃的框架。关注项目的版本迭代速度、在 GitHub 中的更新频率、Issue和Pull Request 的响应情况。如果一个项目长期没有更新,或者有一堆的问题需要解决但是没有得到响应,就不应该是你学习的对象。
- 选择能够满足需求的框架。没有最好的框架,只有更合适的框架。你所选择的Web 框架不仅需要满足当前的需求,还要充分考虑项目发展一段时间后的情况,即适用性和可拓展性,避免盲目选择而导致将来推倒重来的情况。
- 选择时效性好的框架。在学习和使用框架的时候经常需要查阅和参考各种网络上的文章、博客和教程,但是需要注意它们的发表时间。有些框架的相关文章已经很老,很久没更新了,应该放弃这种框架。有的框架一直以来都有不断的新文章、新博客出现,是比较不错的选择。
- 选择入门友好的框架。详细的技术文档、官方教程对新手来说都是极大的帮助和鼓励。
根据以上的几条原则推荐大家从 Django 始学习基于Python 的Web 开发!
作为最知名、应用最广泛、功能最全面的Web 框架,它能够满足从小型到大型项目的渐进式开发,提供admin 后台、用户和权限管理、缓存、数据库迁移等各种功能,包含大量的组件和常用工具。Django 在GitHub 上非常活跃(https://github.com/django/django)其Star 66K,版本迭代速度也非常快,网络上的学习和参考文献非常多。
Flask可以比作“DIY组装台式机”,性能优良、快速简单、自定义灵活,但是你得要知道如何搭配模块,如何组装各部件,如何更换模块等等,一旦你某个环节处理得不是那么优秀,就会成为整个项目的痛点。与之不同的是,Django 有着完整的工具链,各个模块之间综合集成,配合度好,可以比作“苹果一体机”,你不用管它内部组件是如何搭配,如何安装的,直接开机使用就好了,并且保证安全可靠、性能优异。
想要熟练地使用Django 进行工作,开发生产环境可用的,能够应对一定规模访问量的Web 应用,开发者要学会的远远不止Django 本身。Linux 管理、Python 基础、环境搭建、前端语言、RESTFul API 设计、网站架构、系统管理、服务部署、持续集成、数据库管理、并发处理等等,都是相关的知识领域,包括并且不限于以下的内容
- Python 语言本身
- 前端HTML、CSS、Javascript 等语言
- 数据库、缓存、消息队列等技术
- 日常使用Linux或Mac 系统工作(Windows 属于标配)
- 性能优化经验,能快速定位问题
除此之外,还要对业务有深刻理解,能够写出可维护性足够高的代码。当然,以上都是对经验丰富的开发者而言,对于新手刚入门者,我们朝着这个目标努力学习就好。
基于Python的Web开发技术栈

Python Web开发主流框架的更多相关文章
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- python web开发flask框架 安装与环境
# encoding:utf-8 # 从flask这个框架中导入Flask这个类 from flask import Flask # 初始化一个Flask对象 # Flasks() # 需要传递一个参 ...
- 2020 python web开发就业要求锦集
郑州 Python程序员 河南三融云合信息技术有限公司 6-8k·12薪 7个工作日内反馈 郑州 1个月前 本科及以上2年以上语言不限年龄不限 微信扫码分享 收藏 Python程序员 河南三融云合信息 ...
- Python Web开发中的WSGI协议简介
在Python Web开发中,我们一般使用Flask.Django等web框架来开发应用程序,生产环境中将应用部署到Apache.Nginx等web服务器时,还需要uWSGI或者Gunicorn.一个 ...
- python web 开发学习路线
转载,备着 自己目前学习python web 开发, 经过两个月的摸索,目前对web开发有了浅显的认识,把自己的学习过程贴出来.1.python入门推荐老齐<从零开始学python>,&l ...
- 转载:Python Web开发最难懂的WSGI协议,到底包含哪些内容?
原文:PSC推出的第二篇文章-<Python Web开发最难懂的WSGI协议,到底包含哪些内容?>-2017.9.27 我想大部分Python开发者最先接触到的方向是WEB方向(因为总是有 ...
- Python Web开发:Django+BootStrap实现简单的博客项目
创建blog的项目结构 关于如何创建一个Django项目,请查看[Python Web开发:使用Django框架创建HolleWorld项目] 创建blog的数据模型 创建一个文章类 所有开发都是数据 ...
- 《Python Web开发实战》|百度网盘免费下载|Python Web开发
<Python Web开发实战>|百度网盘免费下载|Python Web开发 提取码:rnz4 内容简介 这本书涵盖了Web开发的方方面面,可以分为如下部分: 1. 使用最新的Flask ...
随机推荐
- 动画 ---Animejs 简单使用与源码解析
Anime是什么 Anime有什么用 Anime是作何做的 requireAnimationFrame() engine(){ // 处理让多个帧运动起来 play() step()} ani ...
- AlterNats是如何做到高性能的发布订阅的?
前言 在过去的一些文章里面,我们聊了一些.NET平台上高性能编程的技巧,今天带大家了解一下AlterNats这个库是如何做到远超同类SDK性能的. NATS:NATS是一个开源.轻量级.高性能的分布式 ...
- SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-上
概述 定义 Spring Cloud Alibaba Seata 官网地址 https://seata.io/zh-cn/ 最新版本1.5.2 Spring Cloud Alibaba Seata 文 ...
- VIM编辑器的宏操作
这两天看到一个小练习,要求如下: 在GVIM下,将下面这张图的内容 改成下面这样 并且指出,要用批量操作的方式,不能一行一行的键入 其实第一反应是利用正则表达式来操作,但是让用正则表达式以外的操作方式 ...
- 03 uniapp自定义导航栏的开发
在我眼里自定义导航分2类: 原生基础上 || 非原生基础上 总结:项目当中能原生就原生,提高性能 区别 uni-app 自带原生导航栏,在pages.json里配置. 原生导航的体验更好,渲染新页面时 ...
- 如何在Excel/WPS表格中批量查询顺丰快递信息?
如何在Excel/WPS表格中批量查询顺丰快递信息? 上期我们讲了如何在Excel/WPS表格中批量查询快递信息(还不知道的小伙伴可以看这里:https://zhuanlan.zhihu.com/p/ ...
- [RCTF2015]EasySQL-1|SQL注入
1.打开之后只有登录和注册两个功能,界面如下: 2.随便注册一个账户并进行登录,(注册admin时显示该账户已存在,考虑到是不是要获取到admin账户),发现可以进行改密操作,结果如下: 3.抓取各个 ...
- 用js获取当前页面的url
1.获取当前或者指定页面的文件名或路径 window.location.pathname 2.设置或获取整个URl字符串 window.location.href 3.设置或获取URL相关的端口号 w ...
- 内存问题难定位,那是因为你没用ASAN
摘要:ASAN全称:Address Sanitizer,google发明的一种内存地址错误检查器.目前已经被集成到各大编译器中. 本文分享自华为云社区<内存定位利器-ASAN使用小结>,作 ...
- Changes in GreatSQL 8.0.25-16(2022-5-16)
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1.新增特性 1.1 新增仲裁节点(投票节点)角色 1.2 新增快速单主模式 1.3 新增MGR网络开销阈值 1.4 ...