gpt4 book ai didi

google-app-engine - Google App Engine (Python) app.yaml urlhandler 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:29 25 4
gpt4 key购买 nike

我正在尝试使用 python27 的谷歌应用引擎。

    handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico

- url: /hello
script: helloworld.app

- url: /.*
script: main.app

helloworld.py 和 main.app 与官方文档中的代码相同,差别不大(响应字符串)。

import webapp2
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello world!!!')
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)

我的结果:1.“~”,响应来自“main.app”。2.“~/favicon.ico”,响应来自“favicon.ico”。3.“~/hello”,响应为“404”。4.“~/something”,响应为“404”。

抱歉,要发布这个问题,“~”代表 “http://localhost:8080”

为什么3和4处理不了?有什么问题吗?

最佳答案

尝试将 ('/', MainHandler) 更改为 (r'/.*', MainHandler)(r 只是表示它是原始字符串)。问题是你目前除了你的根 / 之外没有任何处理程序,所以请求带有其他参数(例如 http://localhost:8080/hello) 没有匹配的处理程序,因此不知道如何处理它。将处理程序更改为 /.* 意味着所有请求(无论根之后是什么)都应路由到您的 MainHandler

至于 app.yaml 处理程序和 *.py 文件中的处理程序,将 app.yaml 视为高级导演。它收到一个请求并简单地确定将它发送到哪里(我收到的是对静态 Javascript 文件的请求吗?CSS?图片?或者这是一个应该为页面提供服务的请求,等等?)。在上述情况下,您希望它在点击任何不是 /favicon 的 URL 时为特定页面提供服务(因此 /.*),那么它的作用是什么is 接受对 /.* 的任何请求并将其路由到 main.app,它在你的 main.py 文件中(我忽略了helloworld.app 现在,主要是因为在您的情况下您不一定需要它)。

然后会发生更细粒度的处理 - main.app 接收原始请求,然后它会查找特定的处理程序来执行代码。当我们将您的处理程序更改为 r'/.*' 时,它会匹配进入的任何内容(因此 //hello/helloworld 等),并执行相应的类 MainHandler,在本例中)。

关于google-app-engine - Google App Engine (Python) app.yaml urlhandler 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15954482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com