0

这是代码,

import webapp2
from framework import bottle
from framework.bottle import route, template, request, error, debug

@route('/')
def root():
         return 'hello world'
class MainHandler(webapp2.RequestHandler):
   def get(self):
        root()


app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)

所有依赖项都在那里(框架、瓶子等),但是,当我使用 GAE 部署它时,我只是得到一个空页面!

我也尝试了这些,但都没有奏效,也许 GAE 改变了它的设置:

4

4 回答 4

1

请注意使用:

app.run(server='gae')

否则瓶子会尝试访问你的系统并且 GAE 会失败

于 2014-02-21T00:35:14.827 回答
1

您没有遵循这些链接中的建议。最明显的是,您只是在调用root而没有实际将其结果作为响应返回。在 Python 中,您需要显式地使用return从函数中返回一个值,而在get.

您也对设置处理程序感到绝望。如果您使用的是瓶子,请使用它:也不需要混合使用 webapp。Webapp 是瓶子的替代品,而不是 GAE 中的东西。您的链接准确地显示了如何做到这一点。

于 2013-06-01T19:53:55.193 回答
1

另一个对我来说完美的解决方案:https ://github.com/GoogleCloudPlatform/appengine-bottle-skeleton

于 2017-06-09T05:56:17.547 回答
0

Bottle如果您在主脚本处理程序中将其设为全局变量,则该类实现适用于 GAE 的 WSGI 。

主文件

from bottle import default_app, route, run

@route('/')
def root():
  return 'hello world'

app = default_app()

应用程序.yaml

runtime: python39

handlers:
- url: .*
  script: main.app

要求.txt

bottle

就是这样!

我使用 Bottle 0.12.19 在 Google Cloud Shell 上对此进行了测试,并部署到 Google App Engine Standard。

于 2022-01-19T21:39:16.563 回答