如何在我的web空间中使用python进行JSONP呢。。?

2024-05-16 20:57:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚检查了我的web空间,它的签名是:Apache/2.2.9(Debian)mod_python/3.3.1 python/2.5.2 mod_ssl/2.2.9 OpenSSL/0.9.8g

这给了我希望Python得到某种程度的支持。为什么python被列了两次?mod廑python/3.3.1和python/2.5.2???在

在我的网络空间里有一个cgi-bin文件夹。在

我想做的是:我需要跨站点调用以从服务器获取一些文本数据。文本数据不是JSON,但是我想我应该把它转换成JSON(或者有没有一个选项可以在没有JSON的情况下跨站点操作?)在

python脚本获取一些JSONP的请求。根据请求(我想我应该以某种方式解析URL),python脚本将从web服务器加载请求的文本数据文件,并将其包装为JSON并返回。在

有人能告诉我在我的web空间中如何使用python完成这三个步骤吗?在


Tags: 数据文本服务器脚本webmodjsonssl
1条回答
网友
1楼 · 发布于 2024-05-16 20:57:15

首先,签名不会列出python两次。它首先列出mod_python的版本,这是一个apacheweb服务器插件,然后列出系统上python解释器的版本。在

python cgi module-这确实是编写python服务器代码的低效方法,但在这里它就是这样。最终,您应该考虑其中一个令人惊叹的pythonweb框架。但是,使用cgi模块,您的响应总是以以下内容开头:

print 'Content-Type: application/json\n\n'

python脚本将通过HTTP请求在服务器上运行。在该脚本中,您将检查请求并从URL值或查询字符串中确定要提供的数据。在

至少,您只需将返回值包装在一个基本的JSON数据结构中。文本数据本身可以是字符串:

^{pr2}$

对于JSONP方面,您通常会检查查询字符串,以查看请求是否包含客户端所需回调函数的特定名称,或者只是默认为“callback”

print "callback(%s);" % json_data
# callback({"text": "FOO"});

返回一个JSONP类型的响应,因为当客户端接收到它时,会为客户端执行回调。在

最后,让我补充一点,您应该知道pythoncgi脚本需要为每个请求(甚至是来自同一客户机的重复请求)启动一个全新的python解释器进程。这很容易在负载增加的情况下压倒服务器。因此,人们通常使用wsgi路由(apache中的mod_wsgi)。wsgi允许持久应用程序继续运行,并处理正在进行的请求。在

相关问题 更多 >