1

3 天前,我开始使用 google appengine 来看看它是如何工作的。

我已经设置了打印“hello”的基本应用程序。没什么复杂的。我更新了打印“hello”应用程序的简单应用程序,它运行良好。

然后我想多做一点实验:

首先我上传了新程序(我没有更改 app.yaml,只是 main.py)然后我得到了一个空屏幕。

然后我上传了一个新版本的应用程序(在 app.yaml 和 main.py 中更改了版本),我在后端的 admin 中更改了一个版本。我仍然有一个空的屏幕。

谢谢。

这是我的代码:main.py

#!/usr/bin/env python
print 'Hello, World!'

应用程序.yaml:

application: searchbarrel
version: 2
runtime: python
api_version: 1

handlers:
- url: /.*
  script: main.py

该应用程序在本地主机上运行良好

4

2 回答 2

2

您的 CGI 脚本需要在输出文本之前至少打印一个空白行,因为浏览器会将第一行作为 HTTP 标头:

#!/usr/bin/env python
print '\nHello, World!'

会正常工作。

理想情况下,您应该在空行之前打印实际有效的 HTTP 标头。

dev_appserver 的行为与生产服务器稍有不同,这就是您看到输出在本地运行的原因。

(不过,使用 WSGI 框架是个好主意。)

于 2012-06-15T16:44:10.553 回答
1

这行不通。写一个有内部的文件是不够的print hello。您需要创建一个 WSGI 应用程序并创建一个 RequestHandler 来处理您的请求并写出hello world

主文件

import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
    def get(self):
        self.response.out.write('Hello, World')

app = webapp2.WSGIApplication([('/', MainPage)])

def main():
    application = webapp.WSGIApplication([("/", MainPage)], debug=True)
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

您应该先阅读入门指南。 https://cloud.google.com/appengine/docs/standard/python/

于 2012-06-15T13:17:55.143 回答