#这是一个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): #设定状态和头部参数的回调函数passresult = application(environ, start_response)#调用APP的__call__函数(这里APP是一个类)def write(data): # 这是把响应发到前端的函数passdef data in result: # 迭代访问,把响应发到前端write(data)
from wsgiref.simple_server import make_server# 定义我们一个最简单的appdef 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 objectdef index(environ, start_response):start_response('200 OK', [('Content-Type', 'text/html')])return ['index page']# 这是一个标准的application objectdef hello(environ, start_response):start_response('200 OK', [('Content-Type', 'text/html')])return ['hello page']# 这是一个标准的application objectdef 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('/') #这句代码是获取urlurls = [ # 这里定义路由('index', index),('hello', hello)]for item in urls: # 这里根据路由,执行不同的appif item[0] == path:app = item[1]return app(environ, start_response)else: return not_found(environ, start_response) # 如果找不到,则执行默认的appfrom wsgiref.simple_server import make_server# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:httpd = make_server('', 8000, application)httpd.serve_forever()
本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
转藏
分享
QQ空间
QQ好友
新浪微博
微信
献花(0)
+1
来自: >