import socket
import pymysql
import datetime
def service_client(new_client_socket, i): # 接受客户端发送的请求信息
# GET / HTTP/1.1
print()
print("第{}次请求".format(i))
print('-' * 20)
msg = '' # 接收APP传来的按键信息
body = '' #接收传感器数据
accept_time= ''
body = new_client_socket.recv(1024 * 1024)
print("发过来的数据是:"+str(body))
accept_time = datetime.datetime.now().strftime("%H,%M,%S")
conn = pymysql.connect(host='127.0.0.1', user='root', password='1219', database='farm',
charset='utf8') # 连接database
cursor = conn.cursor() # 生成cursor对象
# 插入数据
cursor.execute("INSERT INTO data_t VALUES (%s,%s)", [(body)], accept_time)
conn.commit()
# 查询按键状态
a=cursor.execute('select * from buttom_msg where ID = (SELECT MAX(ID) from buttom_msg);')
print(body)
print(a)
new_client_socket.send(a.encode())
print('第{}次请求完毕'.format(i))
new_client_socket.close()
def main():
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 1. 搭建tpc服务器端 创建套接字
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,
1) # 设置当服务器先close 即服务器端4次挥手之后资源能够立即释放,这样就保证了,下次运行程序时 可以立即绑定7788端口
tcp_server_socket.bind(('192.168.1.113', 8000)) # 2. 绑定address
tcp_server_socket.listen(128) # 3. 将手机设置为正常的 响铃模式(让默认的套接字由主动变为被动 listen)
i = 0
while True:
i += 1
new_client_socket, client_addr = tcp_server_socket.accept() # 4. 等待别人的电话到来(等待客户端的链接 accept)
service_client(new_client_socket, i) # 5. 为这个客户服务
cp_server_socket.close() # 7. 关闭socket网络io流
#conn = pymysql.connect(server='DESKTOP-O0FGIGJ\SYX', database="wlw_jns") # 使用Windows验证
if __name__ == '__main__':
main()
错误的意思是execute方法接受2到3个位置参数,但给出了4个
报错是23行吗?看上述代码没有看到4个参数的execute方法调用啊
我情况跟你一模一样,请问您解决了么