Как организовать приложение-движок приложения - PullRequest
3 голосов
/ 24 января 2010

Я хочу создать структуру каталогов, подобную следующей. Как я могу получить account.py и game.py для обработки запросов, которые относятся к \ account \ and \ game \ с уважением. Все примеры движка приложения, которые я видел, содержат всю логику в main.py, которая обрабатывает все URL.

app\account\
           \account.py
   \game\
        \ game.py
   \static\css
          \js
          \images
   \app.yaml
   \main.py

Я попробовал следующее в app.yaml, но это не сработало

application: mefirst
version: 1
runtime: python
api_version: 1

handlers:

- url: /static
  static_dir: static

- url: /account
  script: account.py

- url: .*
  script: main.py

Ответы [ 2 ]

11 голосов
/ 24 января 2010

Вам нужно следующее в app.yaml:

- url: /account
  script: account/account.py

- url: /game
  script: game/game.py

- url: .*
  script: main.py

Кстати, я предлагаю вам попытаться забыть обратную косую черту (такие символы, как: \) - подумайте нормальная косая черта (символы, подобные этому: /).Обратная косая черта - это аномалия в Windows (и в большинстве случаев она даже не нужна - Python с радостью примет нормальную косую черту вместо обратной косой черты в файловых путях), не используется в качестве разделителей пути в URL-адресах или в операционных системах Unix-y (включая Linux и MacOSX).Я упоминаю об этом, потому что вы говорите о «запросах, которые идут к \ account \ and \ game \ уважительно», и таких вещей нет - ни один запрос не идет по пути с обратными слешами, он всегда будет forward слешами.

2 голосов
/ 24 января 2010

Взгляните на MVCEngine , фреймворк для AppEngine, который предоставляет Ruby on Rails-подобную структуру для создания приложений. Это может или не может быть чрезмерным для того, что вы хотите сделать, но если вы посмотрите в основной файл проекта, MVCEngine.py, вы сможете увидеть, как это происходит для обеспечения структуры каталогов проекта, как вы хочу. Это не так уж сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...