0

我正在使用 Google App Engine 开发应用程序,并且我想使用 AJAX 调用来执行 Python 脚本。我可以检索脚本,但无法执行它。

我会使用 WSGI,如下所示: How do you execute a server-side Python script using jQuery? . 但是,我不希望我的页面重定向,并且我保持页面不重定向的解决方案是使用此处建议的 AJAX 调用:Run CGI application without redirecting from HTML和此处:Make a tag act like input button

现在我使用 HTML 表单,但我想阻止它重定向页面。

<form action="/token" method="post" >
 <div> "some button code" </div>
 </form>

所以我一直在尝试改用 AJAX,但它返回代码而不执行它

$.post('js/mailToken.py', { testdata: 'hello world' },alert("success"));
4

1 回答 1

2

您正在尝试将 python 脚本作为静态文件查看,这就是应用引擎返回代码而不执行它的原因。

假设您来自 PHP 世界,除非您在 .htacces(在 apache 服务器上)中进行 URL 重写,否则将您的浏览器指向 PHP 脚本的位置将执行该脚本。

在 App Engine 和许多 python 网络框架中,这会有所不同。为了将某个 URI 指向某个脚本,您可以编辑app.yaml应用目录中的文件。

默认情况下,所有 URI 都将指向一个名为main.py. 这是在您使用谷歌应用引擎启动器创建应用时生成的 app.yaml 中定义的。定义 this 的部分如下所示:

handlers:
- url: /
  script: main.py

在 main.py 中,您需要进一步指定如何根据 URI 处理您的请求。您可能希望使用 webapp 或 webapp2 框架来执行此操作,具体取决于您使用的是 python 2.5 还是 2.7。完成后,您可以简单地向这些 URI 发送请求,无论它是通过 AJAX 还是作为表单的操作,或者直接转到它或单击链接。

解释整个 webapp 和 webapp2 框架以了解如何进一步处理请求,可能超出了这个答案的范围(阅读:我厌倦了打字:p),但应用程序引擎文档有很好的“入门” python 2.5python 2.7指南。

于 2012-08-18T12:39:29.410 回答