使用app-engine-patch發揮Django的威力(三)

researcher

This site has been moved to dreamerslab.com

本站已經移至 dreamerslab.com

一個實際的例子

為了實際證明app-engine-patch提供的一些特性,我們將使用Django重寫這個留言本(App Engine Helper)的應用程式: http://bit.ly/fobiM 。我們會使用generic views,並且為Google使用者和非Google使用者提供使用者認證。

Django項目結構

在Django,一個項目被分割為幾個應用包(app packages)。以某種方式創建給某個項目,一個功能獨立的特定應用是有可能的。因此,您可以封裝成插件在多個Django項目中使用(plug packages into multiple Django projects)例如,一個 app package將可以是
一個部落格的標籤程式庫。(a tagging library for a blog)

初看起來可能有與Django 的目錄組織有一些間接關聯。不過結構的好處是幫助您保持你的代碼結構化和可重複使用,這對較大的項目很重要。

除了應用, 「Django項目」還包含一個共通(global)設定檔和一個根URL配置檔(定義URL在框架的處理方式)。應用程式可以有額外的URL配置,也會 被加入到主URL配置檔。 「Django模板(template)」以類似的方式工作。有套用至所有應用程式的共通模板,也可以有特定應用的自訂模板。

配置你的項目

首先,我們配置app-engine-path的安裝,以便它準備就緒部署。打開Google App Engine的app.yaml配置文件,並替換application field為您的application id。您可以現在就執行manage.py update部署您的應用程式部署到Google App Engine。

如果你看一下範例項目的內容,您將看到範例應用程式放在一個叫myapp的目錄中 。我們來創建一個另一個應用,也就是留言簿。創建一個文件夾命名為guestbook,並創建這些文件:

__init__.py – Python會把包含這個文件的文件夾視為一個包
urls.py – 特定應用的URL配置.它控制在給定的URL上執行視圖(請求處理request handlers)
models.py – 應用的數據存儲模型
views.py – 包含視圖,Django中處理請求邏輯的術語
templates – 包含你的應用的HTML模板的文件夾

讓我們的安裝應用到我們的項目。要做到這一點,需要在settings.py中的INSTALLED_APPS列表中把你的應用名稱包含進來:

INSTALLED_APPS =(

‘guestbook’,
)

如果您正使用配合Django使用關聯式資料庫,你現在必須運行manage.py syncdb創造必要的資料庫表格。不過在App Engine中這一切都是多餘的。

現在讓我們把留言簿應用集成進全局URL路由。修改項目的global/urls.py 文件,使其包含如下行:

urlpatterns = patterns(”,

(r’^guestbook/’, include(‘guestbook.urls’)),
)

現在如果你訪問任何以/guestbook/開頭的網址,系統將會在應用特定URL配置文件/guestbook/urls.py中尋找匹配的請求。

參考來源

使用app-engine-patch發揮Django的威力

Related Posts


Comments are closed.