频道栏目
首页 > 程序开发 > Web开发 > Python > 正文
从Python传递JSON到JavaScript
2015-04-17 09:00:58           
收藏   我要投稿
关键字: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 = "https://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,将看到同样的结果。

点击复制链接 与好友分享!回本站首页
相关TAG标签
上一篇:使用Python来对MySQL数据库进行操作
下一篇:python property
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站