老男孩python全栈就业班第9期第3部分Django基础第60天返回具体的HTML网页

返回具体的HTML网页

1.新建文件 yimi.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>yimi</title>
</head>
<body>
<h1>day60 Web框架的本质</h1>
<p>海燕</p>
<p>在苍茫的大海上,狂风卷积着乌云,在乌云和大海之间,海燕像黑色的闪电,在高傲的飞翔</p>
</body>
</html>

2.新建文件 xiaohei.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>xiaohei</title>
</head>
<body>
<h1>day60 Web框架的本质</h1>
<p>小黑呀</p>
<p>是真的黑呀</p>

</body>
</html>

3.修改文件 index.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-

"""
不完善的Web服务器实例
根据不同的路径返回不同的内容
"""

import socket

#生成socket实例对象
sk = socket.socket()

#绑定IP和端口
sk.bind(("127.0.0.1", 8089))

#监听
sk.listen()

#定义一个处理/yimi/的函数
def yimi(url):
    with open("yimi.html", "rb") as f:
        ret = f.read()
    return ret

#定义一个处理/xiaohei/的函数
def xiaohei(url):
    with open("xiaohei.html", "rb") as f:
        ret = f.read()
    return ret

#定义一个专门用来处理404的函数
def f404(url):
    ret = "你访问的这个 {}".format(url)
    return bytes(ret, encoding="utf-8")

url_func = [
    ("/yimi/", yimi),
    ("/xiaohei/", xiaohei),
]

#写一个死循环,一直等待客户端来连我
while 1:
    #获取与客户端的连接
    conn, _ = sk.accept()

    #接受客户端发来消息
    data = conn.recv(8096)
    #print(data)

    #把收到的数据转成字符串类型
    data_str = str(data, encoding="utf-8")
    #print(data_str)

    #用 \r\n 分割上面的字符串
    l1 = data_str.split("\r\n")
    #print(l1[0])

    #按照空格切割上面的字符串
    l2 = l1[0].split()
    #print(l2[1])
    url = l2[1]

    #给客户端回复信息
    conn.send(b'http/1.1 200 OK\r\ncontent-type:text/html; charset=utf-8\r\n\r\n')
    
    #想让浏览器在页面上显示出来的内容都是响应正文
    #根据不同的URL返回不同的内容
    #去url_func里面找对应关系
    for i in url_func:
        if i[0] == url:
            func = i[1]
            break
    #找不到对应的关系就默认执行f404函数
    else:
        func = f404

    #拿到函数的执行结果
    response = func(url)

    #将函数返回的结果发送给浏览器
    conn.send(response)

    #关闭
    conn.close()

4.修改 yimi.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>yimi</title>
</head>
<body>
<h1>day60 Web框架的本质</h1>
<p>海燕</p>
<p>在苍茫的大海上,狂风卷积着乌云,在乌云和大海之间,海燕像黑色的闪电,在高傲的飞翔</p>

<a href="http://www.luffycity.com">程序员的梦想,点我直达</a>
<p></p>
</body>
</html>

 

posted on 2019-10-28 05:21  herisson_pan  阅读(7)  评论(0)    收藏  举报

导航