zoukankan      html  css  js  c++  java
  • 从Python传递JSON到JavaScript

    OS: Windows 8.1 with update

    关键字:Python 3.4,HTML5,JSON,JavaScript

    1.LocalServer.py,启动server,打开网页,传递JSON。

    from threading import Thread
    import time
    import webbrowser
    import http.server
    import socketserver
    import json
    import os
    
    port_number = 8000
    
    server = None
    def startServer(port):
        originDir = os.getcwd()
        os.chdir(os.path.dirname(os.path.realpath(__file__)))
        Handler = http.server.SimpleHTTPRequestHandler
        global server
        server = socketserver.TCPServer(("", port), Handler)
    
        print("serving at port", port)
        server.serve_forever()
        os.chdir(originDir)
    
    def start(port):
        thread = Thread(target=startServer, args=[port])
        thread.start()
        time.sleep(2) #Wait to start the server first
    
    def test():
        if not server:
            print("Failed to start server")
    
        url = "http://localhost:" + str(port_number) + '/' + 'index.html'
        url += "?number="
        url += "1"
        
        jsonObj = {
            "person": {
                "name": "Jack",
                "age": 20
            }
        }
        
        jsonStr = json.dumps(jsonObj)
        url += "&person="
        url += jsonStr
        webbrowser.open(url)
        print(url + " is opened in browser")
    
    def stop():
        if server:
            server.shutdown()
    
    if __name__ == "__main__":
        start(port_number)
        test()

    2.index.html, 接受JSON string,转换成JSON object。

    <!DOCTYPE html>
    <html>
    <head>
        <title>Home</title>
    </head>
    
    <body>
        <script>
            function getQueryStringByName(name){
                 var result = location.search.match(new RegExp("[?&]" + name+ "=([^&]+)","i"));
                 if(result == null || result.length < 1){
                     return "";
                 }
                 return result[1];
            }
            
            var personStr = getQueryStringByName('person');
            personStr = decodeURIComponent(personStr);
            var personObj = JSON.parse(personStr);
            alert(personStr);
        </script>
    </body>
    </html>

    3.把LocalServer.py和index.html放到同一个文件夹下面。运行LocalServer.py。

    4.LocalServer.py也可以被其他py文件调用。例如添加test.py如下

    import LocalServer
    
    LocalServer.start(8000)
    LocalServer.test()

    5.运行test.py,将看到同样的结果。

  • 相关阅读:
    HIFU控制器的显示板
    风扇控制板
    直流源控制板
    HIFU的心脏
    强劲的全桥驱动
    脑电模块
    另一个12导联心电模块
    数据处理,pandas方面遇到的问题
    6.13 django
    python 零基础学习之路-06 常用模块
  • 原文地址:https://www.cnblogs.com/ldlchina/p/4426018.html
Copyright © 2011-2022 走看看