Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python入门(18+)

Python入门(18+)

作者头像
高一峰
发布于 2020-09-22 01:56:36
发布于 2020-09-22 01:56:36
4440
举报
文章被收录于专栏:高渡号外高渡号外
Python入门(18+)

Web极简开发

各位朋友,大家好!

嗯,今天的开场白怎么不一样了?

哈哈,是啊!要知道这个可是我们的又年轻又帅又有才的Python导师刘之昂老师的口头禅哦。

这里借来用一下,是因为我们今天要送给大家的彩蛋正是刘之昂老师在高渡网(https://www.igaodu.cn)发布的新的视频课程《Python Web开发》要讲的内容哦,我们这里先打开一个门缝,让大家往里边瞧瞧吧。因为很多人一看到“Python Web开发”这么高大上的东西,就开始有畏难的学习情绪了。

但是,真的是那么难吗?真的有必要学吗?

这样说吧,当我们巴心巴肝的学完了Python的基础知识,咱好歹也算是一名Python程序员了,可是我们应该去哪里施展我们的拳脚呢?实话实说,学习Python技术,用武之地可多了,Web开发算一种,其他的还有数据挖掘数据分析机器学习人工智能,几乎你能想到的软件能做的事,Python都能行!

为什么要从Web开发学起呢?这个还真不一定啊。不过呢,作为初学者,Web开发的确是一个非常好的技术路径的入口,毕竟这是一个网络的时代,Web应用极其普遍,小到网站,大到平台,都被称为Web开发。Web不止是一个网站,Web技术正是一切网络应用技术的基础和入口。很难想象,在今天我们还会创建一个独立于网络之外的应用,这就是我们为什么一定要学习Web应用技术的原因。

当然,完整的Web开发技术,绝不是一堂课能学会的,有兴趣的同学赶紧上高渡网站,查找《Python Web开发》,就能找到刘之昂老师完整的视频课程了。

今天我们仅就Web开发的核心理念,来做一些有意义的探索。通过一个极简的案例,来一窥Python Web应用的奇迹,从而为大家打开一扇通往Web应用的大门。

那我们就废话少说,大家一起来看看我们的第一个WEB应用吧。

1、Web技术的本质

  • 浏览器向服务器发送一个HTTP请求。
  • 服务器收到请求,生成一个HTML文档。
  • 服务器把HTML文档作为HTTP响应请求的消息发送给浏览器。
  • 浏览器在接收到HTTP响应后,从HTTP返回的消息中,取出HTML文档,并显示出来,供浏览者阅读。

最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,然后从文件中读取HTML文档信息,返回给浏览器。一些常见的静态服务器就是这样干的。

如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应等等,都不是一件轻松的事情。如果让我们自己来写这些底层代码,光是阅读HTTP规范,没有1-2个月时间不定能搞清楚,所以,这肯定不是一个正确的方向。

正确的做法是底层代码交由专门的服务器软件实现,我们用Python写代码,主要是专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口(WSGI接口),让我们专心用Python编写Web的业务逻辑。

2、Hello, web

我们来看看python是如何搭建一个极简的Web网站的。

WSGI 接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。

上面的application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:

environ:一个包含所有HTTP请求信息的dict对象;

start_response:一个是发送HTTP响应的函数。

在application()函数中,调用:start_response()函数,就发送了HTTP响应的Header头部标签。因为Header只能发送一次,所以,start_response()函数也只能调用一次。

start_response()函数接收两个参数,一个是http响应码,一个是一组 list 表示的http Header,每个Header用一个包含两个字符串(str)的元组(tuple)表示。

通常情况下,都应该把Content-Type头发送给浏览器。其他很多常用的HTTP Header也应该发送。

然后,函数的返回值'<h1>Hello, 小明!</h1>'将作为HTTP响应的Body发送给浏览器。

这是一个服务器启动程序。Python内置了一个WSGI服务器,启动它需要导入模块wsgiref,它是用纯Python编写的WSGI服务器的参考实现。所谓“参考实现”是指该实现完全符合WSGI标准,但是不考虑任何运行效率,仅供开发和测试使用。

  • 确保以上两个文件在同一个目录下。
  • 然后通过运行server.py来启动WSGI服务器。

上图:我们在Python里运行server.py,

启动了服务器,

并连通了服务器的8000端口。

然后,我们就可以打开浏览器,

在地址栏输入:localhost:8000,

就能访问网站了。

如下图所示。

小结

真正的商业Web应用要远比这个演示程序复杂很多,有兴趣的同学请访问高渡网站,就能找到刘之昂老师的Python Web开发课程了。

那么,到此为止,我们的Python入门课程就真的全部分享完了。

尚未尽兴的同学,请继续关注我们,接下来我们还会不定期推出一些非常有价值又易于学习的课程或内容,分享给大家。

有任何问题或指正,欢迎给我们留言,方便我们改进和为大家提供更好的服务。

谢谢你们!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高渡号外 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python 17.3 WSGI接口
了解了HTTP协议和HTML文档,我们其实就明白了一个Web应用的本质就是: 1、浏览器发送一个HTTP请求;
py3study
2020/01/10
6590
python网络-动态Web服务器案例(30)
PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,
Se7eN_HOU
2019/06/26
1.4K0
python网络-动态Web服务器案例(30)
python-简单测试wsgi
REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。REST指的是一组架构约束条件和原则。" 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。
py3study
2020/01/14
5610
【从零学习python 】88. WSGI接口详解:实现简单高效的Web开发
WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。我们来看一个最简单的Web版本的“Hello, web!”:
全栈若城
2024/02/29
2060
mac python学习开发简单入门
将这两个文件放在同一个文件夹中,运行server.py , 然后浏览器访问http://localhost:8080
py3study
2020/01/09
4200
WSGI到底是什么?
在用Python Web开发时经常会遇到WSGI,所以WSGI到底是什么呢?本文我们一起来揭开WSGI神秘的面纱!
oYabea
2020/09/07
1.1K0
WSGI解惑
WSGI(Web Server Gateway Interface, Web服务器网关接口)是Python中定义的一个网关协议,规定了Web 服务器如何跟应用程序交互。Web服务器可以理解为一个Web应用的容器,通过它可以启动应用,进而提供HTTP 服务。只要应用程序是基于WSGI协议设计的,那么它就可以运行在任何实现了WSGI协议的Web服务器上。WSGI允许开发者将选择Web框架和选择Web服务器进行分离,这就是使用统一的协议的好处。
菜菜cc
2022/11/15
4860
WSGI解惑
Day25Web开发
HTTP协议简介 在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以: HTML是一种用来定义网页的文本,会HTML,就可以编写网页; HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。 HTTP请求 步骤1:浏览器首先向服务器发送HTTP请求,请求包括: 方法:GET还是POST,GET仅请求资源,POST会附带用户数据; 路径:/full/url/path; 域名:由Host头指定:Host:
林清猫耳
2018/04/26
1.3K0
Day25Web开发
用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC
根据用户输入的搜索条件,通过调用各种API接口,使用C++实现一个极简的Web搜索程序。
s1mba
2017/12/28
9.5K0
用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC
初识Django
框架,即framework,特制为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统。
超蛋lhy
2018/08/31
4560
初识Django
Python Web开发中的WSGI协议
 在Python Web开发中,我们一般使用Flask、Django等web框架来开发应用程序,生产环境中将应用部署到Apache、Nginx等web服务器时,还需要uWSGI或者Gunicorn。一个完整的部署应该类似这样:
py3study
2020/01/16
1K0
所谓 WSGI
如果你也想阅读 WSGI 相关的 PEP 规范,建议直接阅读 PEP 3333,因为 PEP 3333 对 PEP 333 是向下兼容的,也可以说 PEP 3333 是对 PEP 333 的补充。
Ryoma
2022/04/02
5730
所谓 WSGI
Python每天五分钟-搭建简单的WEB服务器
WSGI协议是描述服务器如何与客户端通信的一种协议或者规范。 要搭建一个服务器需要实现一个application(environ, start_response)这样的函数。
用户2475223
2019/12/17
1.2K0
Django 相关
Web框架本质   其实所有的Web应用本质就是一个socket服务端,而用户的浏览器就是一个socket客户端。简单的socket代码如下: import socket sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen(5) while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"OK") conn.close()
新人小试
2018/04/12
9200
Django 相关
Python高级进阶(一)Python框架之Django入门
  Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。Django的作者不是一个人而是一个团队(点击 Django Team了解团队成员),我们都知道Django是以一个人的名字命名的,就是下面这个人,我们就叫他“三指琴魔”强哥吧
马一特
2020/09/08
8240
python开发web服务器
python给我们提供了一个接口:WSGI:Web Server Gateway Interface , 它只要求Web开发者实现一个函数,就可以响应HTTP请求。而不用触到TCP连接、HTTP原始请求和响应格式。 下面实例一个最简单的web应用:
汤贤
2020/05/20
2.4K0
Python web框架开发 - WSGI协议
前面我利用TCP协议,返回HTTP数据的方法,实现了web静态页面返回的服务端功能。 但是这样并不能满足大部分的功能需求。
Devops海洋的渔夫
2019/06/02
5470
python web开发 网络编程 HTTP协议、Web服务器、WSGI接口
注:由于 HTML 里面写了很多下载的 css 文件地址,路径总是报错,最后还是 建议引用 CDN 写法,相关库地址查询https://www.bootcdn.cn/
Michael阿明
2022/01/07
1.2K0
python web开发 网络编程 HTTP协议、Web服务器、WSGI接口
Python中的网关:WSGI
互联网飞速发展,在web开发的江湖中,除了武林盟主Java以外,许多脚本语言都参与进来分一杯羹。花开花落,花落花开,无数少年侠士在Web江湖演绎着自己的传说,不不负少年游。
果冻虾仁
2021/12/08
1.4K0
年薪20万Python工程师进阶(3):Python开发之理解WSGI(上)
WSGI(Web Server Gateway Interface),顾名思义,它既不是服务器,也不是应用,而是一种接口(规范),描述web server如何与web application通信的规范。
Python之道
2018/08/02
3650
年薪20万Python工程师进阶(3):Python开发之理解WSGI(上)
相关推荐
Python 17.3 WSGI接口
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档