Djiaogo

1 手功写

server = socket.socket()
server.bind(('127.0.0.1',8080))
server.listen(5)


while True:
    conn, addr = server.accept()
    data = conn.recv(1024)
    conn.send(b'HTTP/1.1 200 OK\r\n\r\n')
    print(data)
    data = data.decode('utf-8')
    current_path = data.split('\r\n')[0].split(' ')[1]
    if current_path == '/index':
        # conn.send(b'<h1>hello baby!</h1>')
        with open('01 纯手撸版本对应的html页面.html','rb') as f:
            conn.send(f.read())
    else:
        conn.send(b'404')
    conn.close()

wsgire

 

ef run(env,response):
    print(env)  # 是个字典类型
    # 固定写法
    response('200 OK',[])  # 列表里面放的是请求首行的信息,可以不放,但是必须写
    # 获取当前用户访问路径
    current_path = env.get('PATH_INFO')
    # 定义一个函数标志位
    func = None
    for url_list in urls:  # urls:[[],[],[]]  url_list:['',func]
        if current_path == url_list[0]:
            func = url_list[1]
            # 结束for循环了
            break
    if func:
        res = func(env)
    else:
        # 匹配不上 走error
        res = error(env)
    return [res.encode('utf-8')]


if __name__ == '__main__':
    server = make_server('127.0.0.1',8888,run)
    server.serve_forever()

 

Djiao 架构:

 

posted on 2019-04-11 21:10  margin19  阅读(67)  评论(0)    收藏  举报

导航