如何组织一个应用引擎应用程序
我想创建一个像下面这样的文件夹结构。请问我该怎么做才能让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,你应该能看到它是如何提供一个项目目录结构的,跟你想要的有点像。其实并不难。