Python网络框架框架纵览

Python网络框架框架纵览

  • 所谓框架指的是这样的一组包:能够使开发者专注于网络应用业务逻辑的开发,而无需处理网络应用底层的协议、线程、进程等方面。这样能大大提高开发者的工作效率,同时提高网络应用程序的质量。
  • 全栈网络架构:是指除了封装网络和线程操作,还提供了HTTP栈、数据库读写管理、HTML模板引擎等一系列功能的框架,如Django、Tornado、Flask。对于Twisted框架来说,它更专注于网络底层的高性能封装,不提供HTML模板引擎等界面的功能,因此不能称之为全栈框架。

四种Python网络框架

企业级开发框架:Django

最成熟、最广泛、功能强大、相对封闭(这是因为Django的各模块之间结合紧密)。

高并发处理框架:Tornado

强大的、支持协程、高效并发、可扩展的Web服务器。其强项在于可以利用它的异步协程机制开发高并发的服务器系统。

支持快速建站的框架:Flask

核心功能简单,以扩展组件形式增加其他功能,被称为“微框架”。

底层自定义协议网络框架:Twisted

不着眼于网络HTTP应用的开发,而是适用于从传输层到自定义应用协议的所有类型的网络程序的开发,并能在不同的操作系统上提供很高的运行效率。

Web服务器

Web服务器是连接用户服务器与Python服务器端程序的中间节点,在网站建立的过程中起着重要的作用。主流的Web服务器包括Nginx、Apache、lighthttpd、IIS等。下面学习Python程序与Web服务器连接的WSGI接口、Nginx的安装和配置方法,以及搭建SSL网站的技术。

实战演练1:WSGI接口

WSGI(Web Server GateWay Interface)是将Python服务器端程序连接到Web服务器的通用协议/接口规范。WSGI的接口有两个:与Web服务器的接口和与服务器端程序的接口。服务器端的开发者需要关注的是WSGI与服务器端程序的接口。
WSGI与服务器端程序的接口非常简单,以下是一个服务器端程序的例子,将该文件保存为webapp.py:

def application(environ, start_response):
	start_response('200 OK', [('Content_Type', 'text/html')])
	return (b'<b>Hello, world!</b>', )

'''
解释:
	定义了一个application函数,
	所有来自Web服务器的HTTP请求都会由WSGI服务转换为对该函数的调用。
	这里的application函数中没有复杂的处理,
	只是通过start_response返回了状态码,
	并通过return返回了固定的HTTP消息体。
'''

与该服务器端程序相对应的是下面的WSGI Server程序,保存为wsgi_server.py:

# 引入Python的WSGI包
from wsgiref.simple_server import make_server
# 引入服务器端程序的代码
from webapp import application

# 实例化一个监听8080端口的服务器
server = make_server('', 8080, application)
# 开始监听HTTP请求
server.serve_forever()

运行wsgi_server.py程序,即相当于启动了一个Web服务器,该服务器对所有的请求都返回Hello World页面(可以在浏览器中输入http://localhost:8080/进行测试):
在这里插入图片描述
在这里插入图片描述

说明:WSGI的设计目标是连接标准的Web服务器(Nginx、Apache等)与服务器端程序。不过,WSGI Server本身也可以作为Web服务器运行,但由于性能方面的原因该服务器一般只能做测试使用 ,不能用于正式运行。

实战演练2:Linux+Nginx+uWSGI配置

Nginx是一个高性能HTTP和反向代理服务器,它以运行稳定、配置简单、资源消耗低而闻名。许多知名网站(百度新浪腾讯等)均采用Nginx作为Web服务器。
因为Nginx是Python在Linux环境下的首选Web服务器,所以本节演示Ubuntu Linux环境下Nginx的安装及配置方法。
PS. 目前不需学习。

实战演练3:建立安全的HTTPS网站

普通HTTP站点的协议与数据以明文方式在网络上传输,而HTTPS是以安全为目标的HTTP通道,即在HTTP下加入SSL层(HTTPS:Hyper Text Transfer Protocol over Secure Socket Layer),通过SSL达到数据加密及身份认证的功能。目前几乎所有的银行、证券、公共交通的网站均以HTTPS方式搭建。
OpenSSL是一个强大的免费Socket层密码库,蕴含了主要的密码算法、常用的密码和证书封装管理功能及SSL协议。目前大多数网站通过OpenSSL工具包搭建HTTPS站点,其步骤如下:

  1. 在服务器中安装OpenSSL工具包
  2. 生成SSL秘钥和证书
  3. 将证书配置到Web服务器
  4. 在客户端安装CA证书
发布了53 篇原创文章 · 获赞 33 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/jy_z11121/article/details/103970614