wsgiref实现多个URL的WEB服务器

from wsgiref.simple_server import make_server
#可以访问一个页面

def xiaoxue(webenvirment,start_response):
print('xiaoxue page') #访问对于4应网页时,服务器后台打印的内容
start_response("200 0k", [('Content-Type', 'text/html;charset=utf-8')]) # text类型不对时,浏览器返回的效果不同
return[bytes('<h2>欢迎来到小学专区</h2>',encoding="utf-8")]
def zhongxue(webenvirment,start_response):
print('zhongxue page')
start_response("200 0k", [('Content-Type', 'text/html;charset=utf-8')]) # text类型不对时,浏览器返回的效果不同
return [bytes('<h2 style="font-size:70px">欢迎来到中学专区</h2>', encoding="utf-8")]
def daxue(webenvirment,start_response):
print('daxue page')
start_response("200 0k", [('Content-Type', 'text/html;charset=utf-8')]) # text类型不对时,浏览器返回的效果不同
return [bytes('<h2 style="font-size:70px">欢迎来到大学专区</h2>', encoding="utf-8")]
def url_dispach(): #路由分发器
urls={
"/xiaoxue":xiaoxue, #前面是url的子页面,前面需要加/,否则无法访问,后面一个函数
"/zhongxue":zhongxue,
"/daxue":daxue
}
return urls
def run_server(webenvirment,start_response):
url_list=url_dispach() #拿到所有页面的url
request_url=webenvirment.get("PATH_INFO")
if request_url in url_list:
func_data=url_list[request_url](webenvirment,start_response)
return func_data #返回页面内容给用户
else: #访问不存在的网页时执行
print('不存在的网页')
start_response("404 no find page", [('Content-Type','text/html;charset=utf-8')]) # 404后的内容必须填写
return [bytes('<h2 style="color:red">404,未找到你访问的页面</h2>', encoding="utf-8")]
s=make_server('localhost',8001,run_server)
s.serve_forever()
posted @ 2022-04-09 22:23  771293871  阅读(50)  评论(0)    收藏  举报