老男孩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) 收藏 举报
浙公网安备 33010602011771号