Python Google App Engine:从yaml文件调用特定方法?
我刚开始学习使用Google App Engine进行数据库编程,编程语言是Python。我想知道我是否可以在一个Python文件里放多个请求处理类,每个类都有get和post方法。我知道yaml文件可以让我指定哪些脚本在特定的URL下运行,就像下面这个例子:
handlers:
- url: /.*
script: helloworld.py
那么我该怎么告诉它去运行.py文件中某个类里的特定方法呢?这样做可以吗?我需要把不同的请求处理类分开到不同的Python文件里吗?我对数据库的理解还很浅薄,所以可能说得不太清楚。
谢谢!
1 个回答
3
我在想,我是否可以在一个Python文件里放多个请求处理类,每个类都有get和post方法。
当然可以!那个 app.yaml
文件只是把控制权转给 helloworld.py
,这个文件会运行里面定义的 main
函数——这个函数通常会设置一个WSGI应用,根据网址把请求分发到合适的处理类。例如,可以看看这个教程里很早的示例代码 这里:
application = webapp.WSGIApplication(
[('/', MainPage),
('/sign', Guestbook)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
我没有复制 import
语句和类定义,因为这些不重要:这是一个示例,展示了一个 .py
文件如何分发到不同的处理类(在这个例子中是两个)。
当然,这并不意味着yaml文件可以让你调用任何方法:实际上,它是把控制权交给一个 .py
文件,而这个文件的 main
函数负责后续的所有操作(例如,使用App Engine自带的 webapp
小框架时,通常会根据传入请求的具体HTTP方法和网址调用 get
或 post
方法 [[或者 put
、delete
等等,如果你也支持这些方法——不过大多数情况下不会,除非你特别想做RESTful风格的应用;-)]])。