#这是一个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
# 定义我们一个最简单的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('/') #这句代码是获取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) # 如果找不到,则执行默认的appfrom wsgiref.simple_server import make_server
# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:httpd = make_server('', 8000, application)httpd.serve_forever()
本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
转藏 分享
QQ空间 QQ好友 新浪微博 微信
献花(0) +1

来自: >