如何将 JSON 数据从 python 返回到 javascript
How do I return JSON-data from python to javascript?
我正在处理一个pythonfile,它返回变量"distance"并将其发送到javascriptfile,在那里我可以将值放在我的网页上。
我的问题是我不知道如何将值从python发送到javascript。我听说你必须让pythonfile以JSON格式返回,然后发出ajax请求,但我在任何地方都找不到如何做到这一点。
我的问题是:如何设置连接,使我在javascript中获取JSON数据?如果有人向我展示使用代码,我真的很感激,我对python和javascript都很陌生。
编辑:数据来自带有距离传感器的RaspberryPi。我的蟒蛇代码是:
import RPi.GPIO as GPIO
import time
import io, json
GPIO.setmode(GPIO.BCM)
TRIG = 14
ECHO = 15
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
revers = 1
while revers == 1:
GPIO.output(TRIG,0)
time.sleep(0.5)
GPIO.output(TRIG,1)
time.sleep(0.00001)
GPIO.output(TRIG,0)
while GPIO.input(ECHO)==0:
pulse_start = time.time()
while GPIO.input(ECHO)==1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
GPIO.cleanup()
我还没有用javascript编写任何东西,仅仅是因为我不知道如何进行ajax调用,但我的目标是将可变距离转换为JSON格式并将其放在我的网页上。
服务器上的 python 程序可以返回您想要的任何格式的任何值,但 json 是一种方便的格式,Python 程序和 JavaScript 都可以轻松处理。
你的javascript需要向服务器发送请求。该请求将指定它想要检索 python 文件。 请注意,javascript 请求是为了响应某些事件而发送的,例如用户单击按钮。
python程序将驻留在服务器的目录结构中的某个位置。 如果你的服务器设置正确,那么当收到对python文件的请求时,服务器将执行python程序并返回python程序的输出,而不是返回python文件的文本。
发出ajax(即javascript)请求的最简单方法是使用jquery。 实际上有 10,000 个关于如何使用 jquery 发出 ajax 请求的教程、博客等。 这是其中之一:
http://www.tutorialspoint.com/jquery/jquery-ajax.htm
以下是 jquery 文档中的相关信息:
https://api.jquery.com/jquery.get/
我对python和javascript都很陌生。
那么你想要的程序很可能太复杂了。
下面是一个 ajax 示例:
页.html
<!DOCTYPE html>
<html>
<head>
<title>My Web Page</title>
</head>
<body>
<p>Hello</p>
<button id="my_button" type="button">Click me</button>
<div id="ajax_results"></div>
<!-- Download jquery library: -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<!-- My jquery code: -->
<script>
$("#my_button").on('click', function() {
$.get("http://localhost:8080/cgi-bin/my_prog.py", function(data) {
$("#ajax_results").text(data);
})
});
</script>
</body>
</html>
我在浏览器中使用以下 url 向本地服务器发出请求:
http://localhost:8080/page.html
在我的浏览器中加载页面.html。 当页面加载时,我的jquery代码执行,这会向按钮添加一个onclick处理程序:
$("#my_button").on('click', function() {....
此后,如果单击该按钮,该函数将执行。
以下python程序驻留在我的本地服务器上的目录中:
my_prog.py
#!/usr/bin/env python3.4
print("Content-Type: text/html'n'n")
distance = 10
print(distance) #This is the body of the response
如果我点击网页中显示的按钮,jquery 代码会向服务器发送文件请求my_prog.py:
$.get("http://localhost:8080/cgi-bin/my_prog.py", ....
我的服务器设置为执行该文件 - 而不是返回文件的文本 - 然后服务器返回程序的输出作为响应。
当 jquery 代码收到来自服务器的响应时,jquery 调用以下函数:
function(data) {
$("#ajax_results").text(data);
})
将响应的主体作为参数传递。 该函数将响应的正文 data 插入到 id 为 "ajax_results" 的 html 标记中。 由于响应的正文是字符串"10",因此网页中会显示 10。
- 如何在 Python 中获取此 JavaScript 函数的返回值
- Python返回上一页并记住元素
- 用javascript调用python函数,并在网页上显示返回的字符串
- javascript和python返回的相同数据结构在d3.js中表现不同
- Python Flask Web服务器未接收到JSON ajax POST请求,服务器返回HTTP 200 OPTION
- ajax返回空字符串,而不是json[python-cgi]
- Node.JS- R,Python大量计算识别回调何时返回并存储该结果
- 数据从Javascript往返于Redis(通过Python)并返回
- Selenium-Python 单击按钮总是返回错误
- Flask Python 字符串不返回 Javascript XMLHttpRequest 调用
- Python POST请求未返回HTML,请求启用JavaScript
- 从python向jquery返回ajax错误
- python's mechanize和forms:javascript字符串返回
- 如何在Selenium Python execute_script中获取返回元素的值
- Python Selenium PhantomJS单击元素后返回空源
- 在注销Python后处理浏览器的“返回”和“下一步”按钮
- 使用PyV8从Python函数返回' undefined '
- Django/Python/toDataURL返回toDataURL中的字符串作为响应
- Python返回json用于自动完成
- 使用Ajax和Python返回Highcharts