読者です 読者をやめる 読者になる 読者になる

orangain flavor

じっくりコトコト煮込んだみかん2。知らないことを知りたい。

django

Heroku上のDjangoアプリで静的ファイルをS3から配信する(後編)

前編 までで静的ファイルをS3から配信することができました。しかし、実際にHerokuにpushしてみると、毎回全ファイルがアップロードされてしまい、非常に時間がかかります。 原因はこうです。collectstaticはファイルのタイムスタンプを比較してファイルが変…

Heroku上のDjangoアプリで静的ファイルをS3から配信する(前編)

HerokuにDjangoアプリケーションを置いて、静的ファイルもHerokuから配信した場合、USまでのレイテンシがあるので1ファイルごとに結構な時間がかかります。 試しに同じアプリケーションをさくらVPS(大阪)と、Heroku(US)に置いた場合、さくらでは 30ms〜1…

HerokuにDjangoアプリケーションをデプロイしてもcollectstaticが実行されないことがある

【2014年6月3日追記】この後、ビルド時にデフォルトで環境変数を参照できるようになったため、現在この問題は発生しません。 user-env-compileも廃止されました。 See: App environment available in all builds | Heroku Dev Center はじめに Heroku では、…

Djangoでメモリに乗らないサイズのDBを扱うときに気をつける点

はじめに Djangoでメモリに乗らないサイズのデータベースを扱うときに、気をつけるべきポイントをまとめます。メモリを大量に消費していつまで経っても処理が終わらなかったり、OOM Killerに殺されたりといった悲しい結末を回避できたら幸いです。 データ量…

DjangoからMySQLにCOMMITしたデータが別のトランザクションから見えない

はじめに Djangoを使ったアプリケーションで、2つのバッチ処理用プロセスA、Bを同時に立ち上げたときに、Aのトランザクションでsave & commitした値をBでは読み取れないという問題に直面しました。 問題の箇所のソースコードはこのような感じです。 実行順 …

CentOS5.2にPython2.6+Django1.1+mod_wsgi3.1をインストール

なんかそこら辺に幾らでも情報がある内容だけど、ちょっとずつ情報が違って調べるの面倒なので未来の自分のために書いておく。 はじめに CentOS5.2にインストールされているPythonのバージョンは2.4.3で、古いからアップデートしたいと思ってもrpmが公開され…

DjangoでのURL⇔view関数の正引き・逆引き

DjangoのURLディスパッチャは正引き(URLからview関数への変換)は比較的単純ですが、逆引き(view関数からURLへの変換)はちょっとわかりにくいです。get_absolute_urlメソッド, permalinkデコレータ, urlタグ, reverse関数, url関数, 名前付きURLパターンなど…

Djangoで開発する際にセキュリティについて気をつけること

Webアプリケーションを製作するときに、セキュリティについて気をつけなきゃいけないことはいろいろありますが、使用するフレームワークによって何を気にしなければいけないか、何を気にしなくてもいいのかは変わってきます。そこでDjangoでは何を考えなけれ…

Djangoでの普通の文字列とUnicode文字列の違い

先日はPythonでの普通の文字列とUnicode文字列の違いについて触れましたが、今回はそれを前提としてDjangoでの扱いを見ていきます。Djangoの内部では基本的にUnicode文字列が使用されています。しかし、コードを書くときは普通の文字列ももちろん使用できま…