gae

同じ名前のパラメータをリストで受け取る

よくある「該当するものに全てチェックをつけてください」で値を受け取るというやつです。 フォーム <form method="post" action=""> 好きな天気は?<br> <input type="checkbox" name="choice" value="hare" checked>晴れ<br> <input type="checkbox" name="choice" value="kumori" checked>曇り<br> <input type="checkbox" name="choice" value="ame" checked>雨<br> </form>

GqlQueryクラス

http://code.google.com/intl/ja/appengine/docs/python/datastore/gqlqueryclass.html 「limit は必須の引数です。結果の数が不明のとき、クエリからすべての結果を得るには、fetch() メソッドを使用せずに GqlQuery オブジェクトを iterable として使用し…

指定したdatetime値でのfilter(修正2010-03-02)

ユーザー一覧の表示でページ遷移などする時に fetch() を使おうとすると1000件の壁にぶち当たる。そこで datetime 値での filter を使用した。 こんなモデルがあったとする from google.appengine.ext import db class Member(db.Model): insert_datetime = …

データの有効期限をdatetime使ってチェックする

よくある、サービスに登録すると登録確認用URLが記載されたメールが送信されて、そのURLへアクセスすると登録完了となるようなもの。で、有効期限を定める部分と有効期間内かどうかをチェックする部分。 from google.appengine.ext import db import datetim…

画像を指定のサイズに切り取る(よきにはからう感じで)

image_key : 画像を指定w : 欲しい横幅h : 欲しい縦幅models.py from django.utils.translation import ugettext_lazy as _ from google.appengine.ext import db class Photo(db.Model): image_binary = db.BlobProperty() views.py from django.http impor…

データストア、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…

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

gae

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

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

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):…

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…

リダイレクト(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)) うごいたー(・∀・)

URLから実行するモジュールを判断して実行させたい

やりたかったことは2点。 django & python で動的にモジュールを呼び出す python で可変引数を受け付ける関数を実現 というわけで「http://localhost:8000/api/image/set/」で「img/views.py の set()」が、「http://localhost:8000/api/image/own/list/」で…

作成できないアプリケーション名

↓これでエラーが出た > python manage.py startapp userエラーメッセージはこれ↓ Error: 'user' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name.既に user ってモジュールあるもんね。…

GAEの画像処理リソース使って画像のサムネイル生成&データストアへ保存

ここを参考にした。 Images Python API - Google App Engine - Google Code 画像をアップロード 元画像と生成したサムネイル画像を保存 保存した画像を表示する これらを実現できた。やったね! アプリケーション作成 > python manage.py startapp img manag…

データストアにあるデータから、Noneのものを取得またはNone以外を取得、そして昇順降順でソートする

こんなクラス(Store)があったとして・・・ models.py # -*- coding: utf-8 -*- from django.utils.translation import ugettext_lazy as _ from google.appengine.ext import db class Store(db.Model): name = db.StringProperty() phone = db.StringProper…

Pythonで画像処理がしたいので、PIL(Python Image Library)モジュールを使う…ためのインストールメモ

python版GAE用SDK(windows)を使うとき、PILモジュールが無いよというエラーが出ていたので、解決しました。 エラー詳細 > python manage.py runserver WARNING:root:Could not initialize images API; you are likely missing the Python "PIL" module. Impo…

CSVファイルをアップロードしてデータストアへ格納

アップロードするcsvファイルの文字コードはsjisとした場合。models.py # -*- coding: utf-8 -*- from django.utils.translation import ugettext_lazy as _ from google.appengine.ext import db class Import(db.Model): # データ作成日時 created_date = …

Google App Engine のデータストアには全文検索に対応した何かが無いので Python にがんばってもらった

くそがmodels.py # -*- coding: utf-8 -*- from django.utils.translation import ugettext_lazy as _ from google.appengine.ext import db class Message(db.Model): created_date = db.DateTimeProperty(auto_now_add = True) fulltext = db.TextProperty…

画像をデータストアへ保存&データストアの画像を画面へ出力

urls.py とかは随時適切に記述models.py # -*- coding: utf-8 -*- from django.utils.translation import ugettext_lazy as _ from google.appengine.ext import db class Image(db.Model): # 画像を登録した日時 created_date = db.DateTimeProperty(auto_n…

データモデルで StringPropertyに 入力値の制限をつける(choicesを使う)

国名を格納する箇所に、指定された国名以外を保存したくない場合、等。こんな定義の時に class Human(db.Model): country = db.StringProperty(u'コンテンツ', required = True) こうすればいいらしい class Human(db.Model): country = db.StringProperty(u…

テンプレートディレクトリの設定はどうすればいいの?

すでに http://[host]/sample/top/ で sample/views.py の top() モジュールが呼ばれるようになっている、とする。あとテンプレートディレクトリ(になる予定)の中に top.html ファイルが設置されている、とする。で、やりたいことは top() モジュールが te…

静的ファイルはどうすればいいの?

(例) templates/html/display.html に置いたファイルに http://[host]/html/display.html でアクセスしたい 方法 1.アプリケーションディレクトリにある app.yaml ファイルを開く 2.handlers に設定を追記 # アドレスで使用する文字列 - url: /html # 静的フ…

Python(GAE:appengine patch)うにょうにょ型と文字コード編

rec_data = u"ああああ" rec_data = rec_data.encode('UTF-8') print type(rec_data) print rec_data pre_data = request.GET['firstname'] pre_data = pre_data.encode('UTF-8') print type(pre_data) print pre_data うん、エラーは出ないんだけどね。なん…

GAE設置時の不具合メモ

GoogleAppEngine乗せたときにZlibあたりで不具合が出たのでメモ Pythonインストール時にzlibオプションつける cd /usr/local/src wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz tar zxvf Python-2.5.2.tgz cd Python-2.5.2 # 候補 ./config…