2009-10-01から1ヶ月間の記事一覧

データストア、put() とかした後のメモ

gae

from google.appengine.ext import db class Sksk(db.Model): name = db.StringProperty() insert_date = db.DateTimeProperty() def do_add(self, name=None): if name is None : return False # validate 略 self.name = name result = self.put() print t…

データストア、BooleanProperty、ソート

gae

BooleanProperty内のデータでソートした結果をメモ。 from google.appengine.ext import db class Sksk: flag = db.BooleanProperty() for val in Sksk.all(): print str(val.flag) # 1 flag => None(type:None) # 2 flag => True(type:bool) # 3 flag => Fa…

8+6=14が苦手

一番古い記憶にあるのは小学2年生の算数テスト。「8+6=」という問いに対してすぐには答えが出なかった。必死に頭の中で「8と6だから10は確定。余った3と1を足して4だから…14だ!」という思考をしたのを今でも覚えてる。 今では「8足す6は14」という定義とし…

データストア、ListProperty、ソート

gae

ListPropertyで持っている値でソートした結果をメモしておく。テストに使用したクラス「Sksk(サクサク)」 from google.appengine.ext import db class Sksk(db.Model): stlist = db.StringListProperty() # テストデータ # Sksk(key_id=1L, stlist=[]) # S…

数学に感動する頭をつくる

この本を読んだ。Amazon.co.jp: 数学に感動する頭をつくる: 栗田 哲也: 本 冒頭で心を捉まれた 音感ってあるじゃない。それと似た感じで数感ってのがあると思うんだよね、という始まり。とてもキャッチーだ。 音感(おんかん)とは、音に対する人間の感覚。…

データストアへ日時を保存した時に気付いた事メモ

gae

「Sksk(さくさく)」というクラスが日時型のフィールドを持っており「2009/10/26 00:00:00」から「2009/10/26 00:03:00」まで1秒毎の日時が格納されているとする。(データ数は181) from google.appengine.ext import db import datetime class Sksk(db.Mo…

GAEのクエリクラスでのfetch()

いわゆる limit, offset の指定でちょっと詰まった→とりあえず解決した、のでメモ。 Query クラス - Google App Engine - Google Code テストデータが100件入っているとする。うち、50件は「sale_price = 100」にマッチする、とする。 class Song(db.Model):…

想像する時の表現

「うちで飼っているの犬が・・・」といわれて頭に浮かぶのは、部屋の様子と部屋の中にいるだろう犬の様子。「2次元で表現すると・・・」といわれて頭に浮かぶのは、x軸とy軸が垂直に交差している絵。「3次元で表現すると・・・」といわれて頭に浮かぶのは、…

クラスの上書き

class Hoge: def foo(self): print 'foo' return None hoge1 = Hoge() hoge1.foo() # foo class Hoge: def foo(self): print 'foobaa' return None hoge2 = Hoge() hoge2.foo() # foobaa hoge1.foo() # foo へぇー面白い(・∀・)

メソッドのアクセス制御

メソッドに対して、プライベートとパブリックの概念しか無いらしい。何も指定しなければパブリック、メソッド名の前にアンダースコア2連続をつけるとプライベート、らしい。 class SkskAction: def func(self): print 'SkskAction - func()' return None def…

デコレーション

修飾子「@」を使用するデコレーション記述。テストした環境は Python2.5.2 っていうか app-engine-patch(google app engine)。 urls.py urlpatterns = auth_patterns + patterns('', (r'^wkwk/showChar', 'wkwk.views.showChar'), (r'^wkwk/showPost', 'wkwk…

リスト内の要素を探すときにちょっと嬉しいと思ったこと

リスト内にある辞書型の要素を探してて、地味に嬉しかった。 # こんなメソッドがあるとする def hasData(data_list, search_value): if search_value in list_data: return True else : return False # こんなリストがあったとして data_list = [ { 'name' :…

やっちまった・・・

とあるファイル1「aa/views.py」 import bb.views as bbv def mainA(request): # 処理ごにょごにょ bbv.mainB(request) return True とあるファイル2「bb/views.py」 import aa.views as aav def mainB(request): # 処理ごにょごにょ aav.mainA(request) ret…

set()って…

set型というものがあったことに気づかず set() というメソッドを作成してつまりオーバーライド(?)してしまいリスト内で重複してる要素を省きたくて result = list(set(['a', 'b', 'c', 'a', 'b')) って書いて result 内には並び順はどうあれ ['a', 'b', 'c']…

文字列の正規化

タグクラウドなんか作る時に必要になったので以下を作成&テスト。メソッド regtest() に request が渡されてるのは Django でやってるから。 import unicodedata def regtest(request): data = [ u'あいうえおがぎぐげご', u'アイウエオガギグゲゴ', u'アイウエ…

StringProperty()は500byteまで!

ってドキュメントにも書いてあったのに、500文字と勘違いしてた。あーめんどくs

ListPropertyでチクショウ

ListPropertyで要素を持たないデータを取得ってできないのかな・・・ こういうモデルがあったとする。 models.py # -*- coding: utf-8 -*- from django.utils.translation import ugettext_lazy as _ from google.appengine.ext import db class Memo(db.Mod…

eval使いたい

evalで代入はできないらしい…式を実行するだけみたい。evalってそういうものなのかー a = 100 b = 200 text1 = 'a + b' text2 = 'result = a + b' # result には 300 の値が入る result = eval(text1) # これはエラーになった eval(text2)

三項演算子

以下のif文を三項演算子使って1行で書きたい(実行環境:python 2.5.2) a = 100 b = 200 # if文 if a > 0 : result = a else : result = b # 三項演算子使用 result = a if a > 0 else b もちろん結果はどちらも同じ print result # 100 これは地味に嬉しい

リダイレクト(urls.pyでの記述)

例えば http://localhost:8000 へのアクセスを http://localhost:8000/top/ へリダイレクトさせたい場合 urls.py urlpatterns = auth_patterns + patterns('', # これ↓を記述 (r'^$', 'django.views.generic.simple.redirect_to', {'url': '/top/'}), ) + ur…

拡張子から静的ファイル置き場のファイルを読むか判断させたい

app.yaml # 静的ファイル設定 - url: /(.*\.(html|js|css|jpg|gif|png)) static_files: static/\1 upload: static/(.*\.(html|js|css|jpg|gif|png)) うごいたー(・∀・)