Python 2/3 両対応のコードを書くための future_builtins の使い方

Python 2 と Python 3 で動作が変わった組み込み関数に, filter や map がある. Python 2 でも Python 3 と同じ動作をさせるために, future_builtins というライブラリが提供されているが, Python 2/3 両対応するには少し注意が必要である. 他のいくつかの方法も含めて, Python 3 の仕様で動作する filter や map 関数の Python 2/3 両対応の書き方について紹介する.

“Python 2/3 両対応のコードを書くための future_builtins の使い方” の続きを読む

DebianのVimでPythonインターフェースを利用する

Powerlineなどの一部のVimのプラグインは内部でPythonを利用しています. しかしながら, DebianのvimパッケージにはPythonを含むスクリプト言語へのインターフェースが含まれていません.

DebianでPythonのインターフェースを含むVimを利用するにはvim-noxパッケージをインストールします.

$ sudo aptitude install vim-nox

“DebianのVimでPythonインターフェースを利用する” の続きを読む

DjangoのFileField/ImageFieldのアップロード先のファイル名を変更する

DjangoのモデルでFileFieldやImageFieldを利用した場合, upload_toでアップロードされたファイルを保存するディレクトリを変更できますが, upload_toに関数を渡すことによって保存するファイル名も変更できます.

公式ドキュメントに記載があるように, 2つの引数をとり, ファイルへのパスを返す関数を定義し, これをupload_toに与えることで, 任意のファイル名で保存することが出来ます. 使用例を以下に示します.

“DjangoのFileField/ImageFieldのアップロード先のファイル名を変更する” の続きを読む

Django 1.5以降ではALLOWED_HOSTSの設定が必要

Django 1.5以降の設定ファイル(settings.py)には, 新たにALLOWED_HOSTSという項目が追加されました. これを設定しない場合, DEBUG=Falseの時は正常に動作しますが, DEBUG=Trueのときは500 Internal Server Errorとなり, アプリケーションが動作しなくなってしまいます. Django 1.5よりも前のプロジェクトをアップデートする際には特に注意が必要です.

“Django 1.5以降ではALLOWED_HOSTSの設定が必要” の続きを読む