如何组织一个应用引擎应用程序

3 投票
2 回答
526 浏览
提问于 2025-04-15 18:24

我想创建一个像下面这样的文件夹结构。请问我该怎么做才能让account.py和game.py分别处理发送到\account\和\game\的请求呢?我看到的所有app-engine示例都是把所有逻辑都放在一个main.py里,来处理所有的网址。

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

在你的 app.yaml 文件中,你需要添加以下内容:

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

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

- url: .*
  script: main.py

顺便说一下,我建议你尽量忘记反斜杠(像这样:\)——想想正常的斜杠(像这样:/)。反斜杠是Windows系统的一个特殊情况(即使在Windows上也大多数情况下不需要——Python会很高兴地接受正常的斜杠来代替文件路径中的反斜杠),在URL中和Unix类操作系统(包括Linux和MacOSX)中都不使用反斜杠作为路径分隔符。我提到这个是因为你说到“请求去到 \account\ 和 \game\”,其实并没有这样的情况——没有请求会去到带有反斜杠的路径,路径中总是使用 正常的 斜杠。

2

看看这个叫做 MVCEngine 的东西,它是一个为AppEngine设计的框架,提供了一种类似于Ruby on Rails的结构来构建应用程序。这个框架可能对你想做的事情来说有点复杂,也可能正合适。如果你查看一下主要的项目文件MVCEngine.py,你应该能看到它是如何提供一个项目目录结构的,跟你想要的有点像。其实并不难。

撰写回答