2010-01-24 68 views
3

我想創建一個如下所示的目錄結構。如何獲取account.py和game.py來處理\ account \和\ game \的請求。我所見過的所有應用程序引擎示例都具有處理所有URL的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

看看MVCEngine,應用服務引擎的框架,它提供on Rails的類似結構的紅寶石建築應用。對於你想要做的事情,它可能會或可能不會矯枉過正,但是如果你看一下主項目文件MVCEngine.py,你應該能夠看到它如何提供一個像你一樣的項目目錄結構想。這並不難。

+0

我真的很喜歡這個。謝謝! –

11

你需要在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 \和\ game \恭敬地」,並且沒有這樣的事情 - 沒有請求去反斜線的路徑,它總是轉發斜線。

+0

這將拋出一個錯誤是線程安全設置爲true的appengine –

+0

@DanielF是的,自從我寫這個答案以來GAE已經發生了很大的變化 - 特別是「腳本」屬性現在必須指出(在python27運行時)不是一個腳本,而是一個WSGI應用程序(非常不幸的設計決定,以這種方式重載「腳本」,而不是引入一個新的屬性名稱!),點,而不是斜槓等等。但是,運行時「python」(如在原始問題中),反正不接受線程安全等等)。 –

+0

你說得對。我會刪除我的答案 –

相關問題