Python
今回は説明を省略していくので注意。 あなたは models.py にモデルを定義しているとします。 # # models.py # from django.db import models class Item(models.Model): name = CharField(max_length=50, primary_key=True) tags = models.ManyToManyField(T…
ascii 文字列は ==, is のどちらでも同じ結果を返します。 一方、unicode 文字列は is で比較した場合の結果が異なります。 # ascii 文字列の比較 a = 'str' b = 'str' a == b >>> True a is b >>> True # unicode 文字列の比較 a = u'str' b = u'str' a == …
Django プロジェクト(ディレクトリ)の外部にある Python コードから、Django アプリケーションのデータベースを操作します。 ドキュメンテーションにあるように、モデルをインポートする前に以下の手順を実行しておきます。 1. プロジェクトのパッケージを…
Python で実装された Web アプリケーションフレームワーク Django の HTML テンプレートエンジンだけを、スタンドアロン(ローカル・アプリケーション)で利用します。以下の Python スクリプトを renderer.py などの名前で保存して、実行します。 #!/usr/bi…
テキスト中に含まれるニコニコ動画のリンク記法(動画 ID)をすべて <a> タグリンクに置換する Python 正規表現です。sm[0-9]+ や mylist/[0-9]+ のような数値が付くリンク記法に対応。 import re adict = { 'sm': '<a href="http://www.nicovideo.jp/watch/\g<1>">\g<1></a>', 'nm': '<a href="http://www.nicovideo.jp/watch/\g<1>">\g<1></a>', 'lv': '</a>
ニコニコ動画 ゲーム・デイリー・ランキング 100 件から、特定タグ(ゆっくり実況プレイ)を含む動画だけを抽出します。 使用する RSS フィード: http://www.nicovideo.jp/ranking/fav/daily/game?rss=2.0 使用するニコニコ動画 API:getthumbinfo このスク…
ランキング一覧の URL から動画 ID (sm***, nm***, so***) を抽出する Python スクリプトです。 パターンは '[sn][mo]\d+' を使ってみました。 import re urls = [ 'http://www.nicovideo.jp/watch/sm123456', 'http://www.nicovideo.jp/watch/nm123456', 'h…
ニコニコ動画ダウンロード&ビデオ再生ソフトの NNDD(v1_27_6) を愛用しているのですが、Player 設定で「コメントを再生のたびに更新する - コメント更新時にローカルに保存済みのコメントに追記」を有効にしていると、NNDD でコメント投稿後に再度メインウ…
アキノチューブ では、10分間隔で各カテゴリを巡回し、新しいエントリがアップロードされていないか確認する CronJob が動作しています。 ここで、更新したカテゴリのインデックス番号を保持するのにグローバル変数を使ってみたのですが・・・ # This is bad…
datetime モジュールの timedelta を有効活用します。 まず、次のようなモデルクラスの定義を仮定します。 # # models.py # from google.appengine.ext import db # データストア定義 class Entry(db.Model): published = db.DateTimeProperty() timedelta([…
私の使っている MacOSX 10.6 はデフォルトで python2.6 を使用するため、GoogleAppEngine の python2.5 準拠のプロジェクトで問題なく動作させるために設定した項目をいくつか書きます。 PyChecker について Google Python スタイルガイド で以下のように記…
ImportError: cannot import name xxxxHandler がなかなか解決できなかったのですが、よく確認すると継承元クラスのモジュールと継承先クラスのモジュールが互いに import し合っていました。 # # module_a.py # import module_b # # module_b.py # import m…
サムネイル画像やキーワード等を追加しました。 RSS 用の HTML テンプレートとして、以下を作成しました。 ここではテンプレート値として article エンティティを利用しています。 <img src="/static/images/thumbnail/{{ article.site.thumbnail }}" alt="thumbnail" align="left" hspace="15"/> <h3>{{ article.site.name }}</h3> <p>更新日:{{ artic…</p>
以前は Eclipse も使っていたのですが、どうも挙動が気に入らなくてプログラム開発は意地でも Xcode を使うようにしています。 さて、Google App Engine を Xcode で開発する際、基本的なことは変わりませんが、エラーチェックやテストケースの実行スクリプ…
import locale locale.setlocale(locale.LC_ALL, 'ja_JP') このように Google App Engine で locale の設定を試みると、 locale.Error('locale emulation only supports "C" locale') の例外を目にします。Google App Engine では locale による日本時間の取…
YouTube API でカテゴリ毎のフィードを取得したい場合、URI 構成の例として次のようなものが有効です。 http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_viewed_{カテゴリ名}?time=today {カテゴリ名} には「映画とアニメ」であれば、Film が入り…
ext-unittest を GitHub に公開してみました。 インスタンスの同等性を評価するためのユニットテスト拡張ライブラリです。 QUnit で謂う所の same(actual, expected) のような動作が期待されます。 オブジェクト ID の異なる二つのインスタンスを比較する目…
代入式で or を用いる場合、None や '' や Null 等は or の後ろに置く。 def assign_string(value): str = value or '' # 良い例 # if not value, |str| is '' str = '' or value # 悪い例 # if not value, |str| is None