关键词:wsgiref、run方法调用
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/9/24 22:10 # @Author : 小梁同学@0311 # @File : 基于wsgiref模块.py # @Software: PyCharm from wsgiref.simple_server import make_server def run(env, response): """ :param env: 请求相关的所有数据 :param response: 响应相关的所有数据 :return: 返回给浏览器的数据 """ response('200 OK', []) # 响应首行 响应头 print(env) # 大字典 wsgiref模块帮你处理好http格式的数据 封装成了字典让你更加方便的操作 # 从env中取 env里面有个 PATH_INFO的键,这个是记录用户输入访问的路径后缀 current_path = env.get('PATH_INFO') # return [b'hello wsgiref'] if current_path == '/index': return [b'index'] elif current_path == '/login': return [b'login'] else: return [b'404 error'] if __name__ == '__main__': server = make_server('127.0.0.1', 8080, run) # 可以放函数 也可以放对象,注意都不要在这加括号 ''' 会实时监听127.0.0.1:8080地址 只要有客户端来了都会交给run函数处理,并且自动加括号() 触发函数体的运行 对象+() 触发产生对象类里面的__call__方法 flask启动源码 make_server('127.0.0.1', 8080, obj) __call__ ''' server.serve_forever() # 启动服务端 ''' 总结: 1、没有一行socket代码书写 2、处理http协议的代码也不用写 3、直接专注于获取数据 然后书写业务逻辑 不足: 不同url路径,对应功能有些越多,且越来越长 '''