資料存取
GAE提供了 Python Modeling API (Python 模型 API)。
這個功能能讓我們存放資料到GAE上。
簡單的用法如下:
- 匯入google.appengine.ext.db 模組
- 建立一個Model的子類別:
from google.appengine.ext import db class data(db.Model): name = db.UserProperty() #設定為user類型 content = db.StringProperty(multiline=True) #字串類型 date = db.DateTimeProperty(auto_now_add=True) #時間類型
這個類別用來當作資料模型。同時也指定了數個資料特性。
要定義資料類型要使用 Property 類別,將特性指定為要求的類型即可。
GAE已經提供數個類型使用。
以 GQL 抓取儲存的資料
存放好的資料要使用GQL來讀取。GQL跟SQL相似,但GQL是用在GAE上的。
GQL的查詢內容一律從 SELECT * FROM model 開始。model 為尋找的資料模型。
繼續用前面的例子:
datas= db.GqlQuery("SELECT * FROM data ORDER BY date DESC LIMIT 10") #用GQL查詢 datas = data.gql("ORDER BY date DESC LIMIT 10") #用物件的gql方法查詢 datas = data.all() #取得所有此資料模型的實體。
GQL可以用where,如同SQL一樣找出符合條件的資料。
index = self.request.uri.rindex('/') greetings = Greeting.gql("WHERE auther.nickname() = :1", self.request.uri[index + 1:])