如何理解chats.html v.s('/ getchats',ChatsRequestHandler)]

时间:2013-06-05 07:27:31

标签: google-app-engine python-2.7

我试着理解不同之处:

ChatsRequestHandler类生成名为chats.html

的模板
template = self.generate('chats.html', template_values)

在应用程序视图中,它名为getchats:

application = webapp.WSGIApplication(
                     [('/', MainRequestHandler),
                      ('/getchats', ChatsRequestHandler)],

edit_user.html v.s('/ edituser ',EditUserProfileHandler)

应用程序如何知道getchats连接到chats.html aldo,它们的名称不同?我希望它应该是同名chats.html和('/ chats',ChatsRequestHandler)。

2 个答案:

答案 0 :(得分:0)

您的请求流程就是这样的。

  1. App Engine会查找您的app.yaml文件。它应包含一个条目,表示/getchats应由application中的somefile.py处理。
  2. 然后转到此“应用程序视图”并将其与Webapp路由匹配。在这种情况下,该路线为('/getchats', ChatsRequestHandler)
  3. 然后它在ChatRequestHandler上调用getpost,并将请求和响应对象传递给它。
  4. 将其输出发送回用户的浏览器。
  5. 您可以根据需要自由实施ChatRequestHandler。在这种情况下,您可以通过读取名为chats.html的模板,使用某些值填充它,然后输出它来实现此目的。

    因此,应用程序知道getchats已连接到ChatRequestHandler。 chats.html的名称非常随意 - ChatReqeustHandler必须知道它,但就是这样。你可以重命名它。

答案 1 :(得分:0)

感谢您帮助我:

一个例子来自codenvy.com作为示例应用程序。

1 App Engine会查找您的app.yaml文件。它应该包含一个条目,表示/ getchats应该由somefile.py中的应用程序处理。

以下是此应用程序的app.yaml文件

application: 3kus-apps
version: 1
runtime: python
api_version: 1

handlers:
- url: /css
  static_dir: css
- url: /js
  static_dir: js
- url: /.*
  script: devchat.py

因为你可以看到它包含没有条目说/ getchats应该由somefile.py中的应用程序处理。

我发现有一个util.js文件,它有一个函数updateChat()。 function updateChat(){downloadUrl(getRandomUrl(“/ getchats”),“GET”,null,onChatsReturned);}。

但是,我想知道 - 在(1)下如何处理somefile.py。