unicodeの"__mod__"について
__mod__
は数値の場合、割り算のあまりとなっているが、文字列にも存在したので、調べて見た。
%は%sや%dなど、文字列のフォーマットとして使われているところからきているのか、
>>> print '%s'.__mod__('kokoko') kokoko
のように使うっぽい。
MultiValueFieldがドキュメント見てもわからなかった。
Form fields | Django documentation | Django
上のドキュメント見てもよくわからなかったので、探しているといい感じに解説しているサイトがあった。
どうやら、1つのinputに対して、二つのformを取得できるようにカスタマイズできるらしい。
バックグラウンドで動かす方法(runserver)
python runserverを開発環境のバックで回していたい時。
$ nohup python apps/manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 < /dev/null & $ jobs $ ps aux | grep runserver $ %1 $ kill %1
これでいける。disownもあるけど、こっちの方がログアウトしても回せるので便利。
プロセス管理: nohup, disown, kill - Heavy Watal
dev、nullの話
Solrのポート(8983)がない時の対処法
$ java -jar start.jar -Djetty.port=8982(8983以外)
正規表現(sub, match)
pythonの正規表現でcompileしたのちにsubすると対象正規表現を一括で置換してくれる。
以下はアルファベット大文字の後に"_“を入れる変換。「(?!^)…」は…にマッチしたときにマッチしない。ただし、先頭を除く。
import re UPPER_RE = re.compile('(?!^)([A-Z])') print UPPER_RE.sub(r'_\1', "DJANGO") --> D_J_A_N_G_O
文字 -> 文字はreplaceで良さげやけど、正規表現で一括で置換する場合はこっちの方がいい。
付録
この表現使えれば、大量データに対して一括変換の対象項目を抽出できる。
import re prog = re.compile(pattern) result = prog.match(string) if result: print 'matchした'