Python Web开发的完整指南
博客:https://somenzz.cn,电脑阅读更方便,阅读原文可访问文中的链接。
学了 Python 这么长时间了,终究觉得编程语言仅仅是个工具,要想通过技术实现自己的价值,终究离不开具体的应用场景,而应用场景繁多,我们的时间和精力都是有限的,不可能什么都能学好,必须做出选择,就像打游戏时选择英雄的职业,是法师还是打野,只能选择一个,一旦选好,游戏结束前不可更改。
编程也是一样,选择一个方向,勤学苦练,深入下去,不要轻易改变。对于 Python,主要的应用领域有 5 大类,自动化测试或运维,爬虫,数据分析,Web 开发,机器学习或人工智能,这几个领域的入门难度从自动化到机器学习也是从易到难,尤其是机器学习,对 Python 的要求并不高,反而是数学及算法要精通。
相信每个人都有自己的职业选择,今天来分享下使用 Python 从事 Web 开发的完整指南,主要有以下内容:
1.什么是 Web 开发?2.为什么 Python 适合 Web 开发?3.有哪些流行的 Python Web 框架?4.有哪些用于 Web 开发的 Python 库?5.Web 开发学习路线图6.用 Python 创建第一个 Web 应用程序7.成为 Python Web 开发人员
1、什么是网站开发?
对于那些刚接触编程的人,可能想知道到底什么是 Web 开发。尽管不可能精确地指出一个确切的术语,但是 Web 开发可以粗略地定义为构建、创建和维护一个网站。通常,Web 开发涉及一个前端,与客户端交互的所有内容,以及一个后端,包含业务逻辑并与数据库交互。前端涉及 html、css、javascript 和由此衍生出的库及框架,如 Angular、React、Vue,可谓学无止境。后端可以有很多语言实现,这里就是 Python 了,也有非常丰富的框架,后面会提到。
2、为什么 Python 适合 Web 开发?
一是易于学习:Python 是初学者最流行的语言,与 Java 和 C ++ 等其他语言相比,你可以编写更少的代码,减少出错,从而提升效率。不仅如此,它还具有较低的进入门槛,因为它与日常语言相对更相似,可以轻松地理解代码。
二是具有丰富的生态系统和库:Python 提供了广泛的库工具和包,可以访问许多预先编写的代码,从而缩短了应用程序的开发时间。例如,你可以使用Numpy 和 Pandas 进行数学分析,使用 Pygal 进行图表分析,并使用 SLQALchemy 进行可组合查询。Python 还提供了惊人的 Web 框架,例如Django 和 Flask,后面部分深入探讨。
三是快速原型制作:与其他编程语言相比,Python 可以节省大量的时间来构建项目,你的想法可以更快地实现,从而可以更快的获得反馈并快速迭代。这种高效的开发使 Python 特别适合那些可以更快进入市场以获得竞争优势的创业公司。
四是广泛流行:Python 是世界上最受欢迎的语言之一,拥有来自世界各地的社区贡献,几乎所有的技术问题通过搜索引擎都可以很快找到解决方案。Python 本身也在不断更新以提供新功能和库,同时还提供了出色的文档和社区支持。特别是对于新开发人员,Python 提供了广泛的支持和框架。
3、有哪些流行的 Python Web 框架?
什么是 Web 框架,为什么如此重要?可以把 Web 框架想象成一个工具箱。一个 Web 框架是预先写好的,由标准化的代码组成,为编写 Web 应用程序服务,目的是为了使开发更快、更容易,包装和模块的集合,使 web 应用程序更加可靠,更容易扩展。换句话说,框架让你不必做繁琐的工作。
Python Web 框架仅在后端用于服务器端技术,用在 URL 路由,HTTP 请求和响应,访问数据库以及 Web 安全。虽然不一定非要使用 Web 框架,但强烈建议您使用它,因为它可以帮助你用更少的时间开发更复杂的应用程序。
那么有哪些流行的 Python Web 框架呢?
1、Django
为了在更短的时间内创建复杂、高质量的 web 应用,很多 web 开发人员会首选 Django 框架。Django 提供了一个开放源代码的高级框架,鼓励快速开发和简洁实用的设计,同时还提供了强大的社区支持和详细的文档。Django 与时俱进,根据 web 开发的趋势相对地更新其功能。Django 的特色如下:
•开放源代码•全栈框架(一条龙服务,完整的解决方案)•权限认证•URL 路由•模版引擎•DRY ( don’t repeat yourself) 设计模式•ORM 映射•数据库架构支持,支持 PostgreSQL, MySQL , SQLite, Oracle•遵循 MVC 设计架构
官方文档是最好的教程,可以从零开始构建第一个程序。Django 非常灵活,您可以与大型公司的 MVP 合作,使用 Django 的一些最大的公司是Instagram,Dropbox,Pinterest 和 Spotify。
2、Flask
Flask 被认为是一个微框架,是一个简约的 Web 框架。它不那么“包含电池”,这意味着它缺少像 Django 这样的全栈框架提供的许多特性和功能,例如 Web 模板引擎,帐户授权和身份验证。其主要特色如下:
•一个轻量级、微框架•学习成本相对较低,入门快•支持 JinJa2 模版引擎•继Django模板语言之后的现代模板语言
Flask 极简且轻巧,这意味着您可以在编写代码时添加所需的扩展和库。Flask背后的理念是,它仅提供构建应用程序所需的组件,因此开发人员具有很大的灵活性和控制力。Flask 还是一种流行且功能强大的 Web 框架,已被 Netflix,Linkedin 和 Uber 等大公司使用。
3、Bottle
它被普遍称为小型微框架。它主要关注 Web API,并尝试将所有内容捆绑在一个文档中,除了 Python 标准库外,它没有依赖项。Bottle 的特色如下:
•微框架•单一源文件最初是用于构建api的,这意味着所有内容都在一个源文件中。•URL路由。•模板引擎。•实用程序。•WSGI标准上的抽象。
Bottle 非常适合用于原型设计,学习 Web 框架的组织以及构建简单的个人应用程序。
4、CherryPy
CherryPy 是一个内嵌多链服务器的流行框架,包含服务器池、安装框架和模块框架。其特色是:
•开源极简主义•一次运行多个 htpp 服务器•强大的配置和灵活的插件系统•内建对概要分析,覆盖和测试的支持
5、Pyramid
Pyramid 是 Pylon 项目的一部分;它是 Python 语言中最灵活的框架之一。该框架允许开发人员选择任何东西如:DBMS,URL 结构,模板样式等等。
6、Web2Py
Web2Py 允许调试器和代码编辑器通过部署工具来编辑代码和调试代码。它使开发人员能够通过 Web 浏览器开发,修改,部署和管理Web应用程序。
每年都可能会有新的框架、或已有框架推出新特性,作为开发者应该使用哪个?
到目前为止,Django 是最受欢迎的框架,其次是 Flask,如果你不知道怎么选就从这两者中选择一个吧。
你可能还会问:我应该选择 Django 还是 Flask?答案是,这取决于 Web 开发人员的技能水平。如果很有经验,请考虑使用更多的“准系统”来开发程序。而如果您是初级开发人员,则最好使用提供更多支持(例如 Django)的框架。
另外,问问自己,是希望使用基础代码库进行构建还是希望灵活地构建代码库的主干?如果是前者请使用 Django;如果是后者,请选择 Flask。归根结底,他们俩都可以实现相同的功能,更重要的是开始编码,而不是为哪种框架更好而烦恼。
4、有哪些用于 Web 开发的 Python 库?
如果需要 Web 爬虫为你的应用程序提取数据,Scrapy 非常适合。它是用于抓取,数据挖掘,自动化测试等的广泛使用的库。
Zappa 是一个功能强大的库,用于在AWS Lambda 上开发无服务器应用程序。
Requests 库可可以轻松发送 HTTP 请求,用于与应用程序进行通信,获取 HTML 页面数据。
另一个有用的库是 Dash,它可以帮助开发与数据可视化有关的 Web 应用程序。它基于 Flask 构建,提供诸如图表,图形,仪表板等功能。
5、Web 开发学习路线图
步骤 1:基础知识储备
首先,前端的三个最基本的东西 HTML 5、CSS 3 和 JavaScript(ES6)是必须要学好的。这其中有很多很多的技术,比如,CSS 3 引申出来的 Canvas(位图)、SVG(矢量图) 和 WebGL(3D 图),以及 CSS 的各种图形变换可以让你做出非常丰富的渲染效果和动画效果。ES6 简直就是把 JavaScript 带到了一个新的台阶,JavaScript 语言的强大,大大释放了前端开发人员的生产力,让前端得以开发更为复杂的代码和程序
•JavaScript 的核心原理•浏览器的工作原理•HTTP 协议:HTTP/2,短连接、长连接、Stream连接、WebSocket
步骤 2: 前端框架及性能调优
目前而言,前端社区有三大框架 Angular.js、React.js 和 Vue.js。React 和 Vue 更为强大,新手可以从 Vue 开始学习。
前端性能优化方面可以看以下几本书籍:
Web Performance in Action ,是一本很不错的书,其中有 CSS、图片、字体、JavaScript 性能调优等。
Designing for Performance ,讲了很多网页优化的技术和相关的工具,可以让你对整体网页性能优化有所了解。
High Performance JavaScript 让你了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。雅虎的前端工程师尼古拉斯·扎卡斯(Nicholas C. Zakas)和其他五位 JavaScript 专家介绍了页面代码加载的最佳方法和编程技巧,来帮助你编写更为高效和快速的代码。
步骤 3:后端技能学习
首先是服务器相关的协议,诸如 WSGI,ASGI 协议的了解,其次前面提到的Python 相关的 Web 框架,还包括一些 API 框架,如:Django REST Framework、FastAPI、Flask REST frameworks 等等。
此外还要学习数据库相关的知识,SQL 语言,数据库相关的查询优化也是不可或缺的。
最后服务端部署的相关技术学习,包括 nginx、uwsgi、gunicorn、https 协议等。
6、 用 Python 创建第一个 Web 应用程序
使用 Flask 创建第一个 HelloWorld 的 Web 应用程序,首先安装 Flask。
pip install flask
创建一个 hello.py 文件,写入以下内容:
from flask import Flask
app = Flask(__name__)
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
代码很简单,就不解释了,执行python hello.py
,然后访问 http://locahost:5000/
, 就可以看到一个显示 "Hello World!" 字样的网页。
7、选择成一个 Python Web 开发人员
恭喜!您正在逐步成为一名熟练使用 Python 的 Web 开发人员。现在应该对如何用 Python 进行 Web 开发有了一个很好的了解,这种了解,将在 Web 开发学习的道路上不迷茫。
小结
Python 进行 Web 开发主要是后端开发,而后端语言有很多选择,诸如 Java,GoLang。前端知识是绕不开 html,css,javascript,因此前端知识是必须掌握的,后端这块可以从 Python 入门,熟练之后有余力再深入掌握其他后端语言。