不能从baseHTTPserver类中更新变量

乔治·伯度(George Berdux)

我正在尝试构建一个简单的Web服务器,该服务器通过POST请求接收GPS坐标,然后将其显示在网页上。我从手机上收到的坐标很好,它将坐标打印到服务器窗口,因此我知道变量“ lat”和“ lon”应该已经用实际坐标进行了更新,但是当我打开浏览器时,我只会得到“测试”测试”。很抱歉我的noob问题,但是我对python还是很陌生,我不明白为什么MyHandler类无法访问变量。。到目前为止,这是我的代码:

PORT = 5050
lat="test"
lon="test"
speed="test"


def serv_responseGET(s):
    s.send_response(200)
    s.send_header("Content-type", "text/html")
    s.end_headers()
    s.wfile.write(lat, lon)

def serv_responsePOST(s):       
    s.send_response(200)
    s.send_header("Content-type", "text/html")
    s.end_headers()
    s.wfile.write(' ');

class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_POST(s):
        print s.path
        length = int(s.headers['Content-Length'])
        post_data = urlparse.parse_qs(s.rfile.read(length).decode('utf-8'))
        for key, value in post_data.iteritems():
            if key=="lat":
                lat=''.join(value)
            if key=="lon":
                lon=''.join(value)
            if key=="speed":
                speed=''.join(value)
        print datetime.datetime.now()
        print "lat=", lat 
        print "lon=", lon
        print "spd=", speed
        serv_responsePOST(s)


    def do_GET(s):
        print s.path
        serv_responseGET(s)


if __name__ == '__main__':
    server_class = BaseHTTPServer.HTTPServer
    httpd = server_class(('', PORT), MyHandler)
    print time.asctime(), "Server Starts - %s:%s" % ('', PORT)
    httpd.serve_forever()

这是我的手机开机自检后在python窗口中显示的内容:

/
2014-10-25 16:23:20.598733
lat= 37.971649
lon= 23.727053
spd= 0.0
192.168.2.50 - - [25/Oct/2014 16:23:20] "POST / HTTP/1.1" 200 -
斯威士太

在Python中,当您在过程中分配变量时,它假定您要创建局部变量而忽略全局变量。要分配给全局变量,您需要先声明它们。所以只需添加行

global lat, lon, speed

从您的do_POST开始,我相信它将解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

BaseHttpServer类中的全局变量

来自分类Dev

为什么我不能从类外部访问 __init__ 中定义的类变量?

来自分类Dev

为什么我不能从类访问脚本变量?

来自分类Dev

不能从回调中永久改变类的状态

来自分类Dev

为什么我不能从开关内的变量中减去?

来自分类Dev

VC ++ 2010可以从Main()访问结构的类变量矢量,但不能从类函数访问

来自分类Dev

为什么python字符串不能从类内部更改全局变量?

来自分类Dev

变量不能从订阅方法分配

来自分类Dev

为什么第二类不能从第三类获取变量数据?

来自分类Dev

为什么我不能从集合中获取项目并将其存储在变量中?

来自分类Dev

WPF ListView不能从ObservableCollection更新

来自分类Dev

为什么我不能从CSS文件中获得CSS类智能感知?

来自分类Dev

为什么不能从扩展类型的基类中调用扩展方法?

来自分类Dev

为什么我不能从我用泛型创建的类中调用方法?爪哇

来自分类Dev

为什么我不能从我用泛型创建的类中调用方法?爪哇

来自分类Dev

不能从存储的属性初始化程序中引用协变量“ Self”类型

来自分类Dev

非静态变量不能从静态上下文Java中引用

来自分类Dev

只能从方法访问父类变量

来自分类Dev

MKAnnotationView不能从MKMapView中删除

来自分类Dev

不能从命令中隐含固件

来自分类Dev

为什么我不能从Perl的同一包中声明的sub访问包中声明的变量?

来自分类Dev

更新扩展类中的SASS变量

来自分类Dev

为什么我们不能从派生类中调用受保护的析构函数?

来自分类Dev

为什么我不能从同一类C#中的方法访问公共字符串

来自分类Dev

当对象是子类类型时,为什么我不能从超类调用子类中的公共方法?

来自分类Dev

可以抛出调用,但是不能从全局变量初始化程序中抛出错误

来自分类Dev

通用类中的变量不能在目标c中表示

来自分类Dev

形式参数不能是 ruby 中的类变量

来自分类Dev

我不能从类到窗体调用我的方法

Related 相关文章

  1. 1

    BaseHttpServer类中的全局变量

  2. 2

    为什么我不能从类外部访问 __init__ 中定义的类变量?

  3. 3

    为什么我不能从类访问脚本变量?

  4. 4

    不能从回调中永久改变类的状态

  5. 5

    为什么我不能从开关内的变量中减去?

  6. 6

    VC ++ 2010可以从Main()访问结构的类变量矢量,但不能从类函数访问

  7. 7

    为什么python字符串不能从类内部更改全局变量?

  8. 8

    变量不能从订阅方法分配

  9. 9

    为什么第二类不能从第三类获取变量数据?

  10. 10

    为什么我不能从集合中获取项目并将其存储在变量中?

  11. 11

    WPF ListView不能从ObservableCollection更新

  12. 12

    为什么我不能从CSS文件中获得CSS类智能感知?

  13. 13

    为什么不能从扩展类型的基类中调用扩展方法?

  14. 14

    为什么我不能从我用泛型创建的类中调用方法?爪哇

  15. 15

    为什么我不能从我用泛型创建的类中调用方法?爪哇

  16. 16

    不能从存储的属性初始化程序中引用协变量“ Self”类型

  17. 17

    非静态变量不能从静态上下文Java中引用

  18. 18

    只能从方法访问父类变量

  19. 19

    MKAnnotationView不能从MKMapView中删除

  20. 20

    不能从命令中隐含固件

  21. 21

    为什么我不能从Perl的同一包中声明的sub访问包中声明的变量?

  22. 22

    更新扩展类中的SASS变量

  23. 23

    为什么我们不能从派生类中调用受保护的析构函数?

  24. 24

    为什么我不能从同一类C#中的方法访问公共字符串

  25. 25

    当对象是子类类型时,为什么我不能从超类调用子类中的公共方法?

  26. 26

    可以抛出调用,但是不能从全局变量初始化程序中抛出错误

  27. 27

    通用类中的变量不能在目标c中表示

  28. 28

    形式参数不能是 ruby 中的类变量

  29. 29

    我不能从类到窗体调用我的方法

热门标签

归档