【从零学习python 】93.使用字典管理请求路径

2024-02-29 20:35:46 浏览数 (1)

urls.py文件

该文件里只有一个字典对象,用来保存请求路径和处理函数之间的对应关系。

代码语言:javascript复制
urls = {
    '/': 'show_home',
    '/index.html': 'show_home',
    '/test.html': 'show_test',
    '/info.html': 'show_info'
}

server.py文件:

代码语言:javascript复制
from wsgiref.simple_server import make_server
from urls import urls
from utils import load_html, load_template

def show_home(start_response):
    return load_html('/index.html', start_response)

def show_test(start_response):
    start_response('200 OK', [('Content-Type', "text/html;charset=utf-8")])
    return ['我是一段普通的文字'.encode('utf-8')]

def show_info(start_response):
    return load_template('/info.html', start_response, name='张三',age=18})

def application(environ, start_response):
    path = environ.get('PATH_INFO')
    # 这里不再是一大堆的if...elif语句了,而是从urls字典里获取到对应的函数
    func = urls.get(path)
    if func:
        return eval(func)(start_response)
    # 其它请求暂时无法处理,返回404
    else:
        start_response('400 NOT FOUND', [('Content-Type', "text/html;charset=utf-8")])
        return ['页面未找到'.encode('utf-8')]

httpd = make_server('', 8000, application)
print("Serving HTTP on port 8000...")
httpd.serve_forever()

0 人点赞