socket 前台访问后台不同接口.py
import socket
sk = socket.socket()
sk.bind(('localhost', 8080))
sk.listen(1024)
def login():
return bytes('this is a login api', encoding='utf-8')
def lottery():
return bytes('this is a lottery api', encoding='utf-8')
def shit():
return bytes('this is a eat_shit api', encoding='utf-8')
url_list = [
('login', login),
('lottery', lottery),
('shit', shit)
]
while 1:
connection, address = sk.accept()
browser_data = connection.recv(1024).decode('utf-8') # 接收来自浏览器的数据
print(browser_data)
first_line = browser_data.split('\r\n')[0] # 分离接口数据
url = first_line.split(' ')[1].strip('/') # 获取不同路径的实体
print(url)
for i in url_list:
if i[0] == url: # 如果来自前台拆分后的接口在我的接口列表里面的话
msg = i[1]() # 就执行这个函数
print(msg)
break
else:
msg = b'444 no found'
connection.send(b'HTTP/1.1 200 OK\r\n\r\n') # 固定格式,首先发送的头部,详见本博文第一张图
connection.send(msg)
connection.close()
import socket
import time
sk = socket.socket()
sk.bind(('localhost', 8080))
sk.listen(1024)
def lottery():
return bytes('this is a lottery api', encoding='utf-8')
def shit():
return bytes('this is a eat_shit api', encoding='utf-8')
def login():
with open('login.html', 'r', encoding='utf-8') as f: # 这里就实现了一个返回网页的功能
data = f.read() # 首先当前 py 同目录下放了一个 login.py 的html文件
data = data.replace('@@##@@##', time.asctime()) # 后台已经实现了一个网页动态的功能
return bytes(data, encoding='utf-8')
url_list = [
('login', login),
('lottery', lottery),
('shit', shit)
]
while 1:
connection, address = sk.accept()
browser_data = connection.recv(1024).decode('utf-8') # 接收来自浏览器的数据
print(browser_data)
first_line = browser_data.split('\r\n')[0] # 分离接口数据
url = first_line.split(' ')[1].strip('/') # 获取不同路径的实体
print(url)
for i in url_list:
if i[0] == url: # 如果来自前台拆分后的接口在我的接口列表里面的话
msg = i[1]() # 就执行这个函数
print(msg)
break
else:
msg = b'444 no found'
connection.send(b'HTTP/1.1 200 OK\r\n\r\n') # 固定格式,首先发送的头部
connection.send(msg)
connection.close()
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。