Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Python製Webフレームワークの比較とDjangoの環境構築

モダンDjango入門 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/11/16 14:00

 9年ぶりとなるメジャーバージョンアップを控えて、盛り上がりを見せているDjango。この連載では最新のDjangoとDjango REST frameworkを用いたプロダクト開発の手法を、実務に使える形でお伝えしていきます。今回はDjangoの特徴を確認してからDjangoプロジェクトの環境構築についてをご紹介します。

目次

はじめに

 データ分析や機械学習の隆盛に伴い、Pythonの人気は近年とても高まっています。それはNumPyやChainerといった便利なPythonライブラリが充実しているという理由がもちろん挙げられますが、Pythonが汎用プログラミング言語であることも人気の後押しになっています。

 実際、「収集・分析したデータの二次活用として、Webアプリケーションを作りたい」という声をよく聞くようになりました。Pythonならデータ処理からWeb開発まで一貫して同じ言語で書くことができます。こういった背景からPythonでのWeb開発は、さらに需要が高まってきています。

 本連載では、PythonのWebアプリケーションフレームワークの中から「Django」を取り扱います。

 Djangoは2005年にオープンソースとして公開された歴史があるフレームワークです。日本語の情報も少なくないのですが、ちょっと古いものが多い印象を受けます。そのためこの連載は「モダンDjango入門」と題して、Djangoの最新バージョン(執筆時点:1.11.6)に合わせた書き方を説明します。さらにDjango REST frameworkを用いたSPA(Single Page Application)の実装方法についても紹介していきます。

 またDjangoは、2017年12月に9年ぶりとなるメジャーバージョンアップとしてDjango 2.0のリリースが控えています。執筆時点ではbeta 1がリリースされています。2.0で追加予定の新しい機能や変更点なども、この連載の中でいくつか紹介していこうと思います。

今回の内容

 今回は実際にDjangoアプリケーションの開発を進める前に、準備段階として確認しておくべきことを紹介していきます。PythonとDjangoの経験がある方には当たり前のことが多いと思いますが、おさらいだと思って読んでいただければと思います。

 まずは、ほかのPython製Webアプリケーションフレームワークと比較しながらDjangoの特徴を見ていきます。次に環境構築について。そして最後に次回への準備として、Djangoプロジェクトを作成するところまでを扱っていきます。

PythonのWebアプリケーションフレームワーク

 PythonにはDjango以外にも、軽量なものから、多機能なものまで多くのWebアプリケーションフレームワークが存在しています。

 ここでは、HotFrameworksというサイトのPython製フレームワークのランキングページに掲載されているなかから、Djangoのほかに執筆時点での上位4つを紹介します。それぞれの特徴を見ていくことで、Djangoがどういったフレームワークであるかがより把握しやすくなると思います。

PythonのWebアプリケーションフレームワーク ランキング
PythonのWebアプリケーションフレームワーク ランキング

Flask

 軽量フレームワークでは最も人気があるのがFlaskです。もともとはArmin Ronacherが2010年のエイプリルフールのジョークとして、後述するBottleというフレームワークをもじって開発したものです。

 WerkzeugJinja2をベースに作られていて、シンプルで拡張性が高いことが特徴です。

 小規模サイトやプロトタイプなど手軽に何かを作る場合に重宝されています。

Tornado

 Tornadoは、FriendFeed(後にFacebookが買収)によって開発されたフレームワーク/非同期通信ライブラリです。

 ノンブロッキングI/Oを使用することで、Tornadoは数万のコネクションをオープンにできます。そのため、WebSocketのような長い時間のコネクションを必要とするアプリケーションに適しています。最近ではJupyter Notebookの裏側で使われていることでも知られています。

 Node.jsのPython代替としても需要があるようです。

Bottle

 Bottleは1つのPythonファイルのみで構成されており、他ライブラリへの依存もありません。とにかくシンプルさが特徴の軽量フレームワークです。

 フレームワークの構造を把握しやすいので、学習用の教材としても人気があります。

Pyramid

 Pyramidは柔軟性が高く、小規模から大規模まで幅広く対応できるのが特徴です。フルスタックなDjangoとは違い、モデルやテンプレートを扱うために自分で各種ライブラリを組み合わせる必要があります。

 フレームワークからの押し付けがないPyramidは、自分で好みのライブラリを選択して使いたいユーザーからの支持が厚いです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 新井 正貴(アライ マサタカ)

     東京大学文学部卒業、アライドアーキテクツ株式会社にて勤務。2016年4月、株式会社SQUEEZEに入社。コミュニティ活動として、PyCon JP 2015〜 スタッフ、Pythonもくもく会の主催を行う。趣味はラクロスとPerfume。 Site:http://massa14...

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5