首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python入门(18+)

Python入门(18+)

作者头像
高一峰
发布于 2020-09-22 01:56:36
发布于 2020-09-22 01:56:36
4560
举报
文章被收录于专栏:高渡号外高渡号外
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网关接口:WSGI和ASGI
基于Web的应用程序(application)或接口(application interface)分为两个部分:Web服务器,负责实现HTTP协议的部分;应用程序部分负责实现业务逻辑的部分。
YaoQi
2025/07/14
900
Python网关接口:WSGI和ASGI
【从零学习python 】88. WSGI接口详解:实现简单高效的Web开发
WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。我们来看一个最简单的Web版本的“Hello, web!”:
全栈若城
2024/02/29
2150
Python 17.3 WSGI接口
了解了HTTP协议和HTML文档,我们其实就明白了一个Web应用的本质就是: 1、浏览器发送一个HTTP请求;
py3study
2020/01/10
6740
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
9380
Django 相关
mac python学习开发简单入门
将这两个文件放在同一个文件夹中,运行server.py , 然后浏览器访问http://localhost:8080
py3study
2020/01/09
4250
初识Django
框架,即framework,特制为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统。
超蛋lhy
2018/08/31
4650
初识Django
python-简单测试wsgi
REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。REST指的是一组架构约束条件和原则。" 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。
py3study
2020/01/14
5740
用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC
根据用户输入的搜索条件,通过调用各种API接口,使用C++实现一个极简的Web搜索程序。
s1mba
2017/12/28
9.6K0
用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC
WSGI、Flask及Werkzeug三者之间的关系
WSGI是一套接口规范。一个WSGI程序用以接受客户端请求,传递给应用,再返回服务器的响应给客户端。WSGI程序通常被定义成一个函数,当然你也可以使用类实例来实现。
全栈程序员站长
2022/11/10
2.6K0
WSGI、Flask及Werkzeug三者之间的关系
WSGI解惑
WSGI(Web Server Gateway Interface, Web服务器网关接口)是Python中定义的一个网关协议,规定了Web 服务器如何跟应用程序交互。Web服务器可以理解为一个Web应用的容器,通过它可以启动应用,进而提供HTTP 服务。只要应用程序是基于WSGI协议设计的,那么它就可以运行在任何实现了WSGI协议的Web服务器上。WSGI允许开发者将选择Web框架和选择Web服务器进行分离,这就是使用统一的协议的好处。
菜菜cc
2022/11/15
4950
WSGI解惑
精析Python3实现动态web服务(附服务端源码)如果我们提供一个动态网站服务,至少应考虑以下四点:一个优秀的动态web框架应该是这样的:关于WSGI标准WIGS模型的要点:实现源码小结:
实现一个简单的静态web网站,只需将写好的html页面上传到特定的web服务器软件即可,但静态网页其实和图片没什么区别,每次更新网站内容,都需要重新制作html页面,然后上传给提供web服务的软件,替
zhaoolee
2018/04/19
7900
精析Python3实现动态web服务(附服务端源码)如果我们提供一个动态网站服务,至少应考虑以下四点:一个优秀的动态web框架应该是这样的:关于WSGI标准WIGS模型的要点:实现源码小结:
测试开发-web开发和flask
web即万维网, 基于html和超文本的图形信息系统, web应用基本上就是指现在B/S架构上的应用
打铁读书郎
2024/04/11
1850
python网络-动态Web服务器案例(30)
PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,
Se7eN_HOU
2019/06/26
1.4K0
python网络-动态Web服务器案例(30)
python开发web服务器
python给我们提供了一个接口:WSGI:Web Server Gateway Interface , 它只要求Web开发者实现一个函数,就可以响应HTTP请求。而不用触到TCP连接、HTTP原始请求和响应格式。 下面实例一个最简单的web应用:
汤贤
2020/05/20
2.4K0
Web | 浅谈用Python进行Web开发
Web开发这样一个大概念,对我这种小白来说,想学也不知道从哪下手。在网上广泛地浏览了一下这个方面的文章后,我发现当今Web开发的一大热门语言是Python(最大的当然还是PHP),而恰好我平常用Python也多,从Python入手,学习Web后端开发,也许要容易些。
公众号---人生代码
2019/09/03
7240
Web | 浅谈用Python进行Web开发
Python3.6学习笔记(六)
由于Python的灵活性,提供了多种方式可以作为服务端语言,包括Python编写的服务器(Medusa)、Python处理模块(mod_python),或者使用CGI、FastCGI方式触发Python脚本。 为了能够编写更通用的Web端程序,提出了WSGI接口作为标准接口规范,类似于Java中的Serverlet,一旦编写完成后,可以运行在不同的App框架中。
大江小浪
2019/02/22
5000
WSGI到底是什么?
在用Python Web开发时经常会遇到WSGI,所以WSGI到底是什么呢?本文我们一起来揭开WSGI神秘的面纱!
oYabea
2020/09/07
1.1K0
Python高级进阶(一)Python框架之Django入门
  Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。Django的作者不是一个人而是一个团队(点击 Django Team了解团队成员),我们都知道Django是以一个人的名字命名的,就是下面这个人,我们就叫他“三指琴魔”强哥吧
马一特
2020/09/08
8410
年薪20万Python工程师进阶(3):Python开发之理解WSGI(上)
WSGI(Web Server Gateway Interface),顾名思义,它既不是服务器,也不是应用,而是一种接口(规范),描述web server如何与web application通信的规范。
Python之道
2018/08/02
3730
年薪20万Python工程师进阶(3):Python开发之理解WSGI(上)
相关推荐
Python网关接口:WSGI和ASGI
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档