如何让PYTHON服务器从HTML接收地理位置并获取天气数据,然后将这些数据发送回web?

如何让PYTHON服务器从HTML接收地理位置并获取天气数据,然后将这些数据发送回web?,python,json,http,server,response,Python,Json,Http,Server,Response,这是我的第一个问题!我是个新手。这是一个独立的项目。 我想用python构建一个服务器来提供天气数据,需要的功能有: 客户端可以向服务器发送地理位置(lat和lon),所以服务器必须接收这些数据 然后在服务器接收到这些数据(我认为是字符串)后,服务器将根据这些数据使用API向Netatmo发送HTTP GET,以获取天气数据,然后我的服务器已经将json数据传输到字符串,该字符串现在只包含温度和湿度:)。(我已经做到了!) 地理位置数据位于[] 服务器将温度和湿度数据发送回客户端 PS:客户端使

这是我的第一个问题!我是个新手。这是一个独立的项目。 我想用python构建一个服务器来提供天气数据,需要的功能有:

  • 客户端可以向服务器发送地理位置(lat和lon),所以服务器必须接收这些数据

  • 然后在服务器接收到这些数据(我认为是字符串)后,服务器将根据这些数据使用API向Netatmo发送HTTP GET,以获取天气数据,然后我的服务器已经将json数据传输到字符串,该字符串现在只包含温度和湿度:)。(我已经做到了!) 地理位置数据位于[]

  • 服务器将温度和湿度数据发送回客户端

  • PS:客户端使用HTML5API获取地理位置。(我仍然在用jquery开发它。但我认为我应该首先构建服务器,对吗?)

    现在我卡住了。不知道如何对“接收”和“发回”部分进行编码

    任何想法或代码都很棒!!谢谢:) 这是我的服务器代码(python)


    使用web套接字和未知框架(例如
    Flask
    )的具体原因是什么?您应该尝试将问题限制在一个问题上,并尝试创建一个最小的示例。这使你自己更容易理解你面临的不同问题,也使人们更容易在各个主题上帮助你。在本例中,您已经描述了您有多个较小的问题:-使用HTML5读取网站中的地理位置数据-将数据发送到服务器-让服务器查找预测并响应-在客户端处理响应。试着一步一步地解决这些小问题,你可以在网上找到很多关于各个步骤的信息。祝你好运我只是在谷歌和Youtube上搜索了一些教程,然后编写了代码。。。对不起,我是新手@阿维胡·马卡坦克斯,男人!你给我一个解决问题的好主意!我不会让你失望的:)希望@MichielB
    import socket
    import requests
    import json
    from Chris import token #for access the token
    HOST,PORT='',8888
    listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    listen_socket.bind((HOST,PORT))
    listen_socket.listen(1)
    
    print("Listenning on port %s" % PORT)
    
    while True:
        client_connection, client_address = listen_socket.accept()
        request = client_connection.recv(1024)
        print(request)
    
    r=requests.get('https://api.netatmo.com/api/getpublicdata?access_token='+token+'&lat_ne=**['+lat_ne+']&lon_ne=['+lon_ne+']&lat_sw=['+lat_sw+']&lon_sw=['+lon_sw+']&filter=TRUE') 
    #lat_ne=str(lat+0.2), lon_ne=str(lon+0.2), lat_sw=str(lat-0.2), lon_sw=str(lon-0.2)
    
    json_object = r.json() #json_object = dict
    
    data1=json_object['body'][0]['measures'] 
    
    data2 = sorted(data1.items())[0][1]['res']
    #print(sorted(data1.items())[1])
    #data3 = sorted(data1.items())[1][1]['res']
    data2str = str(data2.values())
    #data3str = str(data3.values())
    datatemperature = data2str[14:18]
    datahumidity = data2str[19:22]
    
    
    
    http_response = " The temperature is " + datatemperature  + ". The humidity is " + datahumidity
    
    client_connection.sendall(bytes(http_response.encode('utf-8')))
    client_connection.close()