| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==Google App Engine データストアの利用==
[[Python][Google App Engine][GQL]]
===概要===
===利用上の注意===
====[http://code.google.com/intl/ja/appengine/docs/python/datastore/typesandpropertyclasses.html 検索条件と並べ替えに一部プロパティが使用できない]====
<&lt;blockquote>&gt;並べ替えやフィルタに使用するには、プロパティを、インデックス化する必要があるが、一部のプロパティは、インデックス化できないため、検索条件や並べ替えに使用できないないので注意が必要!<&lt;/blockquote>&gt;
*Blob
*Text
====[http://code.google.com/intl/ja/appengine/docs/python/datastore/gqlreference.html GQL で検索条件にリテラルを使用する]====
<&lt;blockquote>&gt;GQL でリテラルを使用する場合には注意が必要。日付型などの場合DATE(リテラル)とする必要がある。<&lt;/blockquote>&gt;
{|class="wikitable"
class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write('<&lt;html><&gt;&lt;body>&gt;')
# (4) 保存されたデータを GQL で取り出す
# persons = Person.gql("ORDER BY id LIMIT 10")
# persons = Person.gql("WHERE id = :id ORDER BY id", id=int("2"))
persons = db.GqlQuery("SELECT * FROM Person ORDER BY id LIMIT 10")
self.response.out.write("<&lt;form action='/add' method='post'>&gt;") self.response.out.write("""<&lt;table border='1'>&gt; <&lt;tr>&gt; <&lt;th>&gt;id<&lt;/th><&gt;&lt;th>&gt;name<&lt;/th><&gt;&lt;th>&gt;mail<&lt;/th>&gt; <&lt;/tr>&gt;
""")
for person in persons:
self.response.out.write("<&lt;tr>&gt;") self.response.out.write("<&lt;td>&gt;%d<&lt;/td>&gt;" %person.id) self.response.out.write("<&lt;td>&gt;%s<&lt;/td>&gt;" %cgi.escape(person.name)) self.response.out.write("<&lt;td>&gt;%s<&lt;/td>&gt;" %cgi.escape(person.mail)) self.response.out.write("<&lt;/tr>&gt;")
self.response.out.write("""
<&lt;tr>&gt; <&lt;td><&gt;&lt;input type='text' size='2' name='id'><&gt;&lt;/td>&gt; <&lt;td><&gt;&lt;input type='text' size='10' name='name'><&gt;&lt;/td>&gt; <&lt;td><&gt;&lt;input type='text' size='15' name='mail'>&gt; <&lt;input type='submit' value='add'><&gt;&lt;/td>&gt; <&lt;/tr>&gt; <&lt;/table>&gt;
""")
self.response.out.write("<&lt;/form>&gt;") self.response.out.write('<&lt;/body><&gt;&lt;/html>&gt;')
# データ投入処理

案内メニュー