想像する時の表現

「うちで飼っているの犬が・・・」といわれて頭に浮かぶのは、部屋の様子と部屋の中にいるだろう犬の様子。「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)) うごいたー(・∀・)

配列の便利スライス

data = [ 'a', 1, 'b', 2, 'c', 3, 'd', 4 ] # 2つとばしで取得 get_str = data[::2] get_num = data[1::2] 上記 get_str と get_num を出力 # get_str ['a', 'b', 'c', 'd' ] # get_num [1, 2, 3, 4]

辞書型の要素内の辞書型の要素でソート

メモしておく data = { 'a' : { 'name' : 'anna', 'age' : 17 }, 'b' : { 'name' : 'beck', 'age' : 15 }, 'c' : { 'name' : 'cherry', 'age' : 20 }, 'd' : { 'name' : 'detteiu', 'age' : 31 } } # (1) age の昇順ソートしたい result = sorted(data.items…

セッションに入れる、セッションから出す

def index(request): # 入れる request.session['user_key'] = 'abcde' # 出す print request.session['user_key'] # 結果 # abcde

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 ってモジュールあるもんね。…

先頭だけ大文字にしたい

text = 'abcde' result = (text[0]).upper() + text[1:] # print result # 結果 # Abcde (追記)こんなのあったのか 3.6.1 文字列メソッド しかし指定した位置の文字だけ大文字または小文字にして返すなんてメソッドは無いのか… そういうのが必要な時点で何か…

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

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

リダイレクト(HttpResponseRedirect)

http://localhost/ で実行していたとして。これは http://www.google.com/ にリダイレクトされる。 # -*- coding: utf-8 -*- from django.http import HttpResponseRedirect def index(request): return HttpResponseRedirect("http://www.google.com/") こ…

トラックバック

トラックバックって言及する時に使うものなのか。関連情報とかその程度の認識だった…あちゃー

データストアにあるデータから、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…

PATH_INFO を使ってメソッドを指定して実行(改修後)

http://hogehoge.com/dinamic/aaaaa というURLでアクセスした際に、aaaaa() というメソッドを実行させたい!という場合urls.py # -*- coding: utf-8 -*- from django.conf.urls.defaults import * urlpatterns = patterns( 'dinamic.views' ,(r'^$', 'index'…

会社宛の電話での話し方

自社にかかってきた電話に出て相手に対して「ちょっといま○○は席を外してるんでー戻り次第折り返すように伝えますんでー」って語尾を延ばす話し方をしてるの聞いて「お前何様?」とか思ったのは今朝だけでいい