資料存取

GAE提供了 Python Modeling API (Python 模型 API)。
這個功能能讓我們存放資料到GAE上。
簡單的用法如下:

  1. 匯入google.appengine.ext.db 模組
  2. 建立一個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:])