编写一个最简单的应用:
def app(environ, start_response): start_response(‘200 OK‘, [(‘Content-Type‘, ‘text/html‘)]) return [b‘<h1>Hello, web!</h1>‘]
使用python标准库里自带的WSGI服务器:
httpd = make_server(‘‘, 5000, application) print(‘Serving HTTP on port 5000...‘) httpd.serve_forever(
即可运行。
这里我们实现了一个函数,而这个工作其实也可以用类来完成,而且使用起来更方便:
class MyFrame: def __init__(self): pass def run(self): pass def wsgi_app(self): pass def __call__(self): pass
WSGI标准要求用类来实现时必须有一个__call__方法。再加点枝叶进去:
from wsgiref.simple_server import make_server class MyFram: def __init__(self): pass def run(self): httpd = make_server(‘‘, 5000, self) print(‘Serving HTTP on port 5000...‘) httpd.serve_forever() def wsgi_app(self, environ, start_response): start_response(‘200 OK‘, [(‘Content-Type‘, ‘text/html‘)]) return [b‘<h1>Hello, web!</h1>‘] def __call__(self, environ, start_response): return self.wsgi_app(environ=environ, start_response=start_response)
这样一来,一个最简单的框架就写好了。具体使用方法如下:
app = MyFrame() if __name__ == ‘__main__‘: app.run()
打开浏览器,输入127.0.0.1:5000,即可看到期待的 Hello, web! 。
之所以用run方法将server_forever包装起来,主要是受到flask的启发。这种形式比较美观,而且也容易理解。
时间: 2024-10-26 22:44:25