服务器以CherryPy的形式返回值给客户端
server returns value to client in CherryPy
我是web开发的新手,我正在学习使用CherryPy作为web服务的后端。我遵循本教程从客户端发送请求到服务器(我想知道是否有另一种方式?)。使用cherrypy用python编写的服务器然后处理请求,并应返回一个值(变量)给客户端(html和js),这就是我卡住的地方。服务器如何将变量返回给客户机?我很困惑,我没有看到任何例子或教程解释这一点。
例如,我的客户端有以下代码(保存为index.html):
<!DOCTYPE html>
<html>
<head></head>
<body>
<form method="get" action="generate">
<input type="text" value="8" name="length" />
<button type="submit">Give it now!</button>
</form>
</body>
</html>
我的服务器端是:
import random
import string
import cherrypy
class StringGenerator(object):
@cherrypy.expose
def index(self):
return open("index.html")
@cherrypy.expose
def generate(self, length=8):
ranNum = ''.join(random.sample(string.hexdigits, int(length)))
return ranNum
if __name__ == '__main__':
cherrypy.quickstart(StringGenerator())
所以当我提交表单时,服务器端的generate()函数将被调用,它将把我提交的值作为参数。但我不希望网页只是显示返回值,因为它是现在,我希望服务器发送返回值回客户端(html和js),以便我可以在我的客户端代码中使用它。我怎么能做到呢?
好了,事情是这样的…当你使用表单时,不需要js。表单只是向cherry处理程序发送或发送数据。你需要做的是像这样使用js或jquery…
<form method="get" action="generate();">
</form>
<script>function generate() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{ // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST","generate",true);
xmlhttp.send();
// your response will be here.
xmlDoc=xmlhttp.responseXML;
};</script>
如果不明白,请告诉我。
安德鲁相关文章:
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 如何从客户端的数组中获取用户输入和返回值
- 在代码隐藏 (asp.net VB) 中返回“完整”客户端 ID
- Node.js:REST客户端返回它之前的值's已返回
- 将来自codeehind的值返回到客户端的jquery函数中
- 如何将客户端javascript返回值传递给ASP经典服务器端
- 在不使用集合的情况下将服务器端计算返回到客户端
- Meteor.methods:从内部回调将数据返回给客户端
- 节点 API 未将数据返回给客户端 ajax 请求
- 在操作方法中保存图像,然后将 URL 返回给客户端
- NodeJS-将命令行输出存储为var,并通过res.send()将其返回到客户端
- dojo/使用NodeJS请求一个png图像数组缓冲区,并将图像返回给客户端
- 如何将socket.io中返回的客户端(网页)重新连接到以前启动的后端进程
- 使用JSON格式的AJAX将值传递给客户端,或者使用PHP返回带有AJAX请求的表
- Javascript客户端返回值到asp.net服务器端
- 服务器以CherryPy的形式返回值给客户端
- 如何使用asp.net和phantomjs获取页面的屏幕截图并将其返回给客户端
- 设置组合框值客户端
- 将画布图像发送到服务器,并将处理后的图像从服务器返回到客户端显示