Python学习十一:Web编程

一、前提知识

1.1 Http协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写, HTTP是万维网(WWW:World Wide Web)的数据通信的基础。

HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

在这里插入图片描述

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

在这里插入图片描述

1.2 Web服务器

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。最主流的三个Web服务器是Apache、 Nginx 、IIS。

在这里插入图片描述
在这里插入图片描述

1.3 前端知识

1.3.1 HTML

菜鸟学习HTML
超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。

您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。
在这里插入图片描述

1.3.2 css

菜鸟学习CSS
CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。

通过使用 CSS 我们可以大大提升网页开发的工作效率!

在我们的 CSS 教程中,您会学到如何使用 CSS 同时控制多重网页的样式和布局。

CSS3 现在已被大部分现代浏览器支持,而下一版的 CSS4 仍在开发中。

1.3.3 JavaScript

菜鸟学习JavaScript

JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。

1.4 静态服务器和动态服务器

静态服务:主要提供静态资源,不同用户访问到的资源相同
动态服务:提供动态服务,不同用户访问到的资源不同
服务器的几个叫法:
web服务器:广义上来说,就是响应用户的需求,提供服务,当下所有的服务器软件都可以称之为web服务器软件
HTTP服务器(静态服务):使用HTTP协议传输资源,提供服务
应用服务器(动态服务):一个特定应用的承载容器
常见的轻量级服务器软件:
1、Nginx:典型的静态服务器,可做反向代理、负载均衡,一般放在最前面直面用户,和后端Tomcat打配合;纯C写的,性能贼高、内存消耗极少、稳定性也相当好,互联网公司重度使用
2、Tengine:阿里出品,基于Nginx服务器做的改造(加强和封装),对大流量场景做了很多高级功能,性能、稳定性优秀
3、Apache http server:也是静态服务器,但是不如Nginx
3、IIS:微软开发,只能用在Windows下,具有应用服务器能力的http服务器
4、Tomcat:Apache出品,典型的应用服务器软件,符合Servlet标准的应用容器,也可以提供http服务,但一般不会作为http服务器;是Spring Boot框架默认的内置服务器
5、Jetty:跟Tomcat是一个性质的东西,符合Servlet标准的应用容器,也是Spring Boot框架支持的服务器,但不是默认的
6、Undertow:红帽子出品,跟Tomcat、Jetty一样也是Spring Boot框架支持的服务器,但不是默认的;高并发时性能优于Tomcat、Jetty

二、WSGI 接口

CGI简介

CGI(Common Gateway Interface)公共网关接口,是外部扩展应用程序与 Web 服务器交互的一个标准接口。它可以使外部程序处理www上客户端送来的表单数据并对此作出反应, 这种反应可以是文件、 图片、 声音、 视频等,可以在浏览器窗体上出现的任何数据。服务器端与客户端进行交互的常见方式多,CGI 技术就是其中之一。根据CGI标准,编写外部扩展应用程序,可以对客户端浏览器输入的数据进行处理,完成客户端与服务器的交互操作。
在这里插入图片描述
在这里插入图片描述
CGI有明显的局限性,例如CGI进程针对每个请求进行创建,用完就抛弃。如果应用程序接收数千个请求,就会创建大量的语言解释器进程,这将导致服务器停机。于是CGI的加强版FastCGI应运而生。
FastCGI使用进程/线程池来处理一连串的请求。这些进程/线程由FastCGI服务器管理,而不是Web服务器。FastCGI致力于减少服务器与CGI程序之间交互的开销,从而使服务器可以出来更多的网页请求。

2.2 WSGI简介

FastCGI的工作模式实际上没有什么太大的缺陷,但是在FastCGI标准下写异步的Web服务还是不方便,所以WSGI就被创建出来了。

Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

在这里插入图片描述
在这里插入图片描述

2.3 定义WSGI接口

WSGI 接口定义非常简单,他只要求web开发者实现一个函数就可以响应Http请求。我们来看一个最简单的WEB版本的Hello World!

def application(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    return [b'<h1>Hello World!<h1>']
  • environ:一个包含所以HTTP请求信息的字典对象
  • start_response:一个发送HTTP响应的函数

三、web框架

3.1 python中常用的web框架

3.1.1 Diango

简介
在这里插入图片描述

3.1.2 Flask

介绍

Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

3.1.3 Bottle

介绍
Bottle是一个Python Web框架,整个框架只有一个文件,几十K,却自带了路径映射、模板、简单的数据库访问等web框架组件,确实是个可用的框架。

在这里插入图片描述

3.1.4 Trnado

介绍

Tornado是一种 Web 服务器软件的开源版本。Tornado 和主流Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码浪人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值