#这是一个appdef app(environ, start_response): return []
def middleware(environ, start_response): #这里编写中间件的代码 return app(environ, start_response)
def app(environ, start_response): 这是一个app return []
class app:
def __call__(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return []
socket = eventlet.listen(('localhost', '8000'), backlog = 10) 定义一个wsgi http服务器server = eventlet.spawn(event.wsgi.server, socket, app) 把service 和 app进行绑定
def run(application): #服务器程序调用应用程序
environ = {}#设定参数
def start_response(status, headers): #设定状态和头部参数的回调函数
pass
result = application(environ, start_response)#调用APP的__call__函数(这里APP是一个类)
def write(data): # 这是把响应发到前端的函数
pass
def data in result: # 迭代访问,把响应发到前端
write(data)
from wsgiref.simple_server import make_server
# 定义我们一个最简单的app
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [b'<h1>Hello, web!</h1>']
# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000...') # 开始监听HTTP请求:
httpd.serve_forever()
# 这是一个标准的application object
def index(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return ['index page']
# 这是一个标准的application object
def hello(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return ['hello page']
# 这是一个标准的application object
def not_found(environ, start_response):
start_response('404 NOT FOUND', [('Content-Type', 'text/plain')])
return ['Not Found Page']
###上面我们定义了三个app
### 然后我们定义一个中间件 middleware,这个中间件的形式是跟app是一样的
def application(environ, start_response):
path = environ.get('PATH_INFO', '').lstrip('/') #这句代码是获取url
urls = [ # 这里定义路由
('index', index),
('hello', hello)
]
for item in urls: # 这里根据路由,执行不同的app
if item[0] == path:
app = item[1]
return app(environ, start_response)
else: return not_found(environ, start_response) # 如果找不到,则执行默认的app
from wsgiref.simple_server import make_server
# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
httpd.serve_forever()
本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
转藏
分享
QQ空间
QQ好友
新浪微博
微信
献花(0)
+1
来自: >