从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 += "" 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,将看到同样的结果。
从Python传递JSON到JavaScript的更多相关文章
- JSON 的正确用法:Python、MongoDB、JavaScript与AjaxJSON 的正确用法:Python、MongoDB、JavaScript与Ajax
本文主要总结网站编写以来在传递 JSON 数据方面遇到的一些问题以及目前采用的解决方案.网站数据库采用 MongoDB,后端是 Python,前端采用“半分离”形式的 Riot.js,所谓半分离,是说 ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
- Json概述以及python对json的相关操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- Json概述以及python对json的相关操作(转)
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
- python解析json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 引用 import json 编码:把一个Python对象编码转换成Json字符串 json.dumps ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- python 解析json loads dumps
认识 引用模块 重要函数 案例 排序 缩进参数 压缩 参考 认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standa ...
- jQuery调用WCF服务传递JSON对象
下面这个示例使用了WCF去创建一个服务端口从而能够被ASP.Net页面通过jQuery的AJAX方法访问,我们将在客户端使用Ajax技术来 与WCF服务进行通信.这里我们仅使用jQuery去连接Web ...
随机推荐
- 功能丰富的 Perl:轻松调试 Perl
http://www.ibm.com/developerworks/cn/linux/sdk/perl/culture-4/index.html
- 句柄(Handle)
1.句柄是什么? 在windows中,句柄是和对象一一对应的32位无符号整数值.对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象.2.为什么我们需要句柄? 更准确地说,是window ...
- C#_IComparer实例 - 实现ID或者yearOfscv排序
调用LIST的Sort的时候会调用IComparer的默认实现,quicksort会调用每个元素的CompareTo的IComparable实现 using System; using System. ...
- 数据结构及算法分析(0)——引论
引论提到算法递归的概念,递归在很多算法中都会出现.所谓递归,当一个函数用它自己来定义的时候就称为递归. 递归调用有两大要素: 基准情况. 递归调用. 并非所有的数学递归函数 ...
- 关于Apache Commons-Lang的总结
部分转载至:http://linhongyu.blog.51cto.com/6373370/1553329 一.前言 Java码农不识Apache,敲尽一生也枉然.旗下的开源项目众多,各个都是吊炸天. ...
- $.parseJSON 将json 对象转换为array
项目中,通过json2.js的JSON.parse(jsonstr)的时候,整个返回值是object $.parseJSON(jsonstr)返回的也是object 而我想要的是array(objec ...
- dedecms导航
{dede:global.cfg_cmsurl /} 首页链接 一级导航: {dede:channel type=“top”} [field:typelink]:导航链接 [field:typenam ...
- 在Ubuntu Linux下安装Code::Blocks和Eclipse CDT
最近小白由于有工作学习的需要,要尝试在Linux下进行C++编程.所以特地花了一点时间研究一下Linux下的C++的IDE.最后我尝试了使用Code::Blocks和Eclipse两个著 ...
- C#学习笔记5:数据类型与进制转换
1.C#: 8种整形类型.2种用于科学计算的二进制浮点类型.1种用于金融计算的十进制浮点类型. 2.Decimal是一种特殊的浮点类型,能够存储大数字而无表示错误. 常用于货币计算.在表示的所有十进制 ...
- 华为机试_字符串识别_Vector的使用;
第一题:拼音转数字输入是一个只包含拼音的字符串,请输出对应的数字序列.转换关系如下:描述: 拼音 yi er san si wu liu qi ba jiu ...