Мне было интересно, разрешено ли мне
есть один файл 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
отвечает за все последующее (например, с * 1019). * мини-фреймворк, который поставляется с App Engine, это всегда будет get
или post
метод [[или put
, delete
, ..., и т. д., если вы также поддерживаете это - мало кто, если особенно RESTful ;-)]] вызывается в зависимости от точного метода HTTP и URL-адреса во входящем запросе.