web应用下解耦合的思想
'''
耦合度较高的代码
'''
from wsgiref.simple_server import make_server
def app(environ, start_response):
'''
:param environ: 是一个字典,存放了http请求的信息
:param start_response: 是一个功能,用于返回http协议的响应首行和响应头信息
:return: 当接收到请求时,wsgiref模块会对该请求加以处理,然后再调用app函数,自动传入两个参数
'''
start_response('200 OK', [('Content-Type', 'text/html')])
if environ.get('PATH_INFO') == '/index':
with open('index.html', 'r', encoding='utf-8')as f:
data = f.read()
elif environ.get('PATH_INFO') == '/timer':
with open('timer.html', 'r', encoding='utf-8')as f:
data = f.read()
import time
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
data = data.replace('{{time}}', now)
else:
data = '<h1>Hello, Web!</h1>'
return [data.encode('utf-8')]
if __name__ == '__main__':
s = make_server('', 8011, app)
print('监听8011')
s.serve_forever()
'''
解耦
'''
from wsgiref.simple_server import make_server
'''
处理业务的逻辑函数
'''
def index(environ):
with open('index.html', 'r', encoding='utf-8') as f:
data = f.read()
return data.encode('utf-8')
def timer(environ):
with open('timer.html', 'r', encoding='utf-8') as f:
data = f.read()
import datetime
now = datetime.datetime.now().strftime('%y-%m-%d %X')
data.replace('{{time}}', now)
return data.encode('utf-8')
url_patterns = [
('/index', index),
('/timer', timer),
]
def app(environ, start_response):
'''
:param environ: 是一个字典,存放了http请求的信息
:param start_response: 是一个功能,用于返回http协议的响应首行和响应头信息
:return: 当接收到请求时,wsgiref模块会对该请求加以处理,然后再调用app函数,自动传入两个参数
'''
start_response('200 OK', [('Content-Type', 'text/html')])
request_url = environ.get('PATH_INFO')
for url in url_patterns:
if url[0] == request_url:
data = url[1](environ)
break
else:
data = b'404'
return [data]
if __name__ == '__main__':
s = make_server('', 8011, app)
print('监听8011')
s.serve_forever()
详情代码git地址