欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python基础 Web业务WSGI接口

程序员文章站 2022-03-23 17:58:26
...

一个Web应用的本质就是:
1. 浏览器发送一个HTTP请求;
2. 服务器收到请求,生成一个HTML文档;
3. 服务器把HTML文档作为HTTP响应的Body发送给浏览器;
4. 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

Web业务WSGI接口

WSGI:Web Server Gateway Interface
无论多么复杂的Web应用程序,入口都是一个WSGI处理函数。HTTP响应的输出都可以通过start_response()加上函数返回值作为Body。

WSGI 处理函数

# main.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 Web业务WSGI接口

# application() 是 WSGI 标准的 HTTP 处理函数
# environ HTTP 请求的 dict 对象
# start_response 一个发送 HTTP 响应的函数
def application(environ, start_response):
    # 200 OK HTTP 响应吗
    # [("Content-Type", "text/html")] HTTP 的 Header
    start_response("200 OK", [("Content-Type", "text/html")])
    # 作为HTTP响应的Body发送给浏览器
    return [b"<h1>Hello, web made in Python</h1>"]

启动 WSGI 并加装 WSGI 函数

# server.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 Web业务WSGI接口

# 启动 WSGI 服务器,加载 main.py 的 application

# 从wsgiref模块导入:
from wsgiref.simple_server import make_server
# 导入我们自己编写的application函数:
from main import application

# 创建一个服务器,IP地址为空,端口是8000,处理函数是application
# 打开浏览器,输入http://localhost:8000/,可以运行结果
httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000...')
# 开始监听HTTP请求:
httpd.serve_forever()

运行 server.py

D:\PythonProject\sustudy>python server.py
Serving HTTP on port 8000...

浏览器输入 输入http://localhost:8000/

查看运行结果,具体如下

Python基础 Web业务WSGI接口