この記事では、PythonのWebフレームワークDjangoでモバイルレスポンシブデザインを実装する手法について解説します。具体的なコード例とその詳細な解説、さらには応用例も含めて紹介します。
はじめに
モバイルレスポンシブデザインは、ウェブサイトがデバイスに応じて最適な表示をするための設計手法です。Djangoを用いてこれを実装する方法は多くありますが、基本的な設定から応用的な手法までを網羅して解説します。
基本的な設定
Bootstrapの導入
DjangoプロジェクトにBootstrapを導入することで、モバイルレスポンシブデザインの基本的な部分を簡単に実装できます。
# Djangoのテンプレートファイル(base.htmlなど)に以下を追加
CSSメディアクエリ
CSSのメディアクエリを使って、特定のデバイスサイズに対応したスタイルを適用します。
/* CSSファイルに追加 */
@media only screen and (max-width: 600px) {
body {
background-color: lightblue;
}
}
応用例
動的にクラスを切り替える
JavaScriptを使って動的にCSSクラスを切り替えることで、より高度なレスポンシブデザインを実現します。
# JavaScriptのコード
window.addEventListener('resize', function() {
if (window.innerWidth < 600) {
document.body.classList.add('mobile');
} else {
document.body.classList.remove('mobile');
}
});
ユーザーエージェントで判定
Djangoのビューでユーザーエージェントを判定して、スマートフォンとPCで異なるテンプレートを読み込ませる方法です。
# views.pyに以下を追加
from django_mobile import get_flavour
def my_view(request):
flavour = get_flavour(request)
template_name = "my_template_{0}.html".format(flavour)
return render(request, template_name)
まとめ
Djangoでのモバイルレスポンシブデザインは多様な手法で実装可能です。基本的なBootstrapの導入から、動的なクラスの切り替え、さらにはユーザーエージェントでの判定まで、ニーズに応じて選べる方法が豊富です。
コメント