import socket
import time
import pymysql
"""
不同的URL,返回不同的内容
返回的内容要是写好的html文件
html里面的内容要有变化
数据要从数据库中查找
"""
sk = socket.socket()
sk.bind(("127.0.0.1", 8090))
sk.listen(5)
def login():
with open('login.html', encoding="utf-8") as f:
data = f.read()
time_s = str(time.time())
data_new = data.replace("@@", time_s)
return data_new
def index():
with open("index.html", encoding="utf-8") as f:
data = f.read()
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="", db="Friday", charset="utf8")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("select id, name,gender from user")
user_list = cursor.fetchall()
cursor.close()
conn.close()
"""
<tr>
<td>id</td>
<td>name</td>
<td>gender</td>
</tr>
"""
ret = ""
for i in user_list:
ret += """
<tr>
<td>{0}</td>
<td>{1}</td>
<td>{2}</td>
</tr>
""".format(i["id"], i["name"],i['gender'])
data_new = data.replace("@@", ret)
return data_new
def info():
return '这是一个页面'
url_func_map = [
("/info/",info),
("/login/", login),
("/index/",index),
]
if __name__ == '__main__':
while True:
conn, addr = sk.accept() # 夯住等待链接
data = conn.recv(8096)
data_str = str(data, encoding="utf-8")
# 取请求头
header = data_str.split("\r\n\r\n")[0]
tmp = header.split("\r\n")[0]
# 取url
url = tmp.split(" ")[1]
conn.send(b"HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\n\r\n") # 响应头
func_name = None
for i in url_func_map:
if i[0] == url:
func_name = i[1]
break
if func_name:
response = func_name()
else:
response = "404"
conn.send(bytes(response, encoding="utf-8"))
conn.close()