Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Google应用程序引擎:从yaml文件调用特定方法?_Python_Google App Engine_Yaml - Fatal编程技术网

Python Google应用程序引擎:从yaml文件调用特定方法?

Python Google应用程序引擎:从yaml文件调用特定方法?,python,google-app-engine,yaml,Python,Google App Engine,Yaml,我不熟悉使用Google App Engine进行数据库编程,现在正在使用Python进行编程。我想知道是否允许我有一个Python文件和几个请求处理程序类,每个类都有get和post方法。我知道yaml文件允许我指定使用特定URL运行哪些脚本,如下例所示: handlers: - url: /.* script: helloworld.py 如何告诉它运行.py文件中某个类中的特定方法?这是可能的/允许的吗?我是否需要将不同的请求处理程序类分离到不同的python文件中?目前我对数据库的

我不熟悉使用Google App Engine进行数据库编程,现在正在使用Python进行编程。我想知道是否允许我有一个Python文件和几个请求处理程序类,每个类都有get和post方法。我知道yaml文件允许我指定使用特定URL运行哪些脚本,如下例所示:

handlers:
- url: /.*
  script: helloworld.py
如何告诉它运行.py文件中某个类中的特定方法?这是可能的/允许的吗?我是否需要将不同的请求处理程序类分离到不同的python文件中?目前我对数据库的理解相当肤浅,所以我可能没有任何意义

谢谢

我想知道是否允许我这样做 有一个Python文件和几个Python文件 请求处理程序类,每个类 有get和post方法

当然!该
app.yaml
只是将控制权转移到
helloworld.py
,后者将运行该文件中定义的
main
函数——该函数通常会设置一个WSGI应用程序,该应用程序根据URL适当地调度到正确的处理程序类。例如,请查看本教程早期的示例代码:

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
迷你框架,它将始终是
get
post
方法[[或者,
put
delete
,…,等等,如果您也支持它们的话——除非它们是特别RESTful的;-)]根据传入请求中的确切HTTP方法和URL进行调用。

感谢您提供的全面而有用的答案!我想我正在慢慢掌握数据库和所有内容。非常有趣的东西:)顺便问一下,debug=True有什么用?@Ayanonagon,不客气!
debug=True
表示显示exc的回溯访问浏览器上的默认值(如果有),否则默认情况下只给出一个非常不透明的“内部服务器错误”(HTTP状态500)。啊哈,这是有道理的。再次感谢!