2015-07-17 4 views
2

В соответствии с Google App Engine doc обработчик сценария может вызывать три типа скриптов Python для обработки соответствия запроса шаблоном URL.Разница между сценариями .py и .app в Google App Engine

Сценарий: директива может содержать либо путь к файлу, оканчивающийся на .py (это означает, что скрипт использует CGI), или путь модуля Python, с именами пакетов, разделенных точками (это означает, что скрипт использует WSGI). Последний компонент скрипта: директива с использованием пути модуля Python - это имя глобальной переменной в модуле: эта переменная должна быть WSGI-приложением и обычно называется приложением по соглашению.

В чем разница между этими тремя типами и их вариантами использования?

ответ

0

script: директива может содержать либо файл путь, заканчивающийся в .py (это означает, что скрипт использует CGI), или в Python модуль путь, с именами пакетов, разделенных точками (это означает, что скрипт использует WSGI). Последний компонент директивы script: с использованием модуля Python путь - это имя глобальной переменной в модуле: эта переменная должна быть WSGI-приложением и обычно называется app по соглашению.

Примечание: так же, как для Python import заявления, каждый подкаталог, который представляет собой пакет должен содержать файл с именем __init__.py.

На самом деле существует только два метода ссылки на сценарий Python. Во-первых, файл путь, например, /home/tsr/myscript.py. Во-вторых, Python module путь, например, mypackage.mymodule.

Для получения дополнительной информации см. Python's documentation on packages.

1

На самом деле, нет ни одного файла .app сценария. Это не является допустимым именем расширения. Вместо этого это переменная внутри скрипта.

Пример

Вы можете увидеть в app.yaml файле что-то вроде этого:

handlers: 
- url: /.* 
    script: application.app 

В этом случае «.app» часть является переменной внутри application.py, и вы можете увидеть такой код внутри application.py:

app = webapp2.WSGIApplication([ 
    ('/', MainPageHandler) 
], debug=True)