构建响应Ajax请求的PHP脚本非常简单:
<?php
$command = $_POST["command"];
if ($command == "say_hello") {
$name = $_POST["name"];
echo json_encode(array("message" => "Hello, " . $name));
}
?>
Run Code Online (Sandbox Code Playgroud)
并且,至少如果您在客户端使用jQuery,并且如果您在原始请求上指定了回调函数,则包含该消息的数组将被传递到该回调函数中.
但是使用Python并不是那么简单.或者至少我还没弄明白如何让它如此简单.如果我只是尝试"打印"一个响应(与上面的PHP的"echo"语句并行),客户端就不会得到任何回复.
每当我在互联网上查看如何使用Python响应Ajax请求时,答案总是涉及使用Django或其他一些Web框架.
而且我知道那些东西很棒,但是PHP做了什么使得使用类似的包不必要?我想用Python而不是PHP编写我的服务器端脚本,但我更喜欢使用DIY方法来使用第三方框架(对吧?)这是一个非常简单的任务.
有帮助吗?如何做到这一点的一个例子将非常感激.
Jos*_*ton 13
但是使用Python并不是那么简单.或者至少我还没弄明白如何让它如此简单.如果我只是尝试"打印"一个响应(与上面的PHP的"echo"语句并行),客户端就不会得到任何回复.
我可能有一些细节错误,但我会试着解释为什么会这样.首先,您正在谈论的PHP直接烘焙到apache webserver中.执行此操作时echo,它会将结果输出到响应流(服务器和客户端之间的TCP连接).当您print在python中执行操作时,您正在执行的操作是将结果输出到标准输出(命令行).
大多数语言如何与Web一起工作,是请求进入某种Web服务器,并且该Web服务器执行程序.该程序负责返回Web服务器所采用的流,并通过TCP连接流式传输到客户端.
我假设网络服务器将PHP标准重定向到webservers流,这就是PHP能够echo用来返回其结果的方式.这是例外,而不是规则.
因此,要使用python来处理请求,您需要有一个可以某种方式执行python的Web服务器.这通常使用CGI完成.最近,类似于mod_python用于在apache中托管python的东西.现在,wsgi或者mod_wsgi被使用,这是为与python交谈的web服务器定义的标准.
您可能希望查看类似web.py的内容,这是一个极简主义的python Web框架.这将使您非常接近您想要做的事情.
| 归档时间: |
|
| 查看次数: |
2489 次 |
| 最近记录: |