こんにちは、はじめまして。リューさん(@Ryu_programs)です。この記事ではPythonのWebアプリケーションフレームワークであるDjangoについて、以下のような人のために紹介していきます。
- Pythonを学習しているけど、Pythonで何ができるのか分からない
- Pythonを使って就活にも役立つ成果物を作ってみたい
- プログラミングに興味あるけど、何から始めればいいのか分からない
なお、この記事は「環境構築編」や「簡単なアプリケーション作成編」などに続いていく予定です。ぜひこの記事を読み、Djangoについて軽く理解しておいてください。
また、Pythonの勉強方法については以下の記事で紹介しています。Pythonは基本的なことに関しては覚えやすく、コードも書きやすいので、「プログラミングを学習したい!」と思っている人にはお勧めの言語です。
Webフレームワークとは
先ほども書きましたが、DjangoとはPythonのWebフレームワークです。そもそもWebフレームワークとは、便利な機能が用意されており、利用することでWebアプリケーションを簡単に短期間で作成できるようにするといったものです。
WebフレームワークにはDjangoのほか、多くの種類があります。この記事ではその中でも有名でよく使われているWebフレームワークを簡単に紹介します。
1.Laravel
LaravelはPHPという言語のフレームワークです。そもそも、PHPという言語自体がWeb開発に多く使われていたこともあり、LaravelやPHPのもう一つのフレームワークであるCakePHPは非常に人気のWebフレームワークです。
ちなみに、PHPがWeb開発に多く使われると書きましたが、それはPHPが動的にWebページを生成できる、サーバサイドのスクリプト言語であるからです。PHPはWordPressなどにも使われていますね。
2.Ruby on rails
Ruby on railsはRubyという言語のフレームワークです。僕が大学1年生の夏に初めて学習した言語がRubyでした。プログラミングの基礎知識など全くなかった僕が、1ヵ月でPaizaのスキルチェックでBランクを獲得できたのは、ひとえにRubyという言語の書きやすさであったり、分かりやすさのおかげだと思います。Ruby on railsもその特徴を受け継いでいます。
また、Rubyという言語は日本人のまつもとゆきひろさんが開発された言語であり、その影響なのか日本語の説明が多いことも特徴です。分からないことでもググったら大体日本語での解決法がヒットする、というのは安心できますよね。
Djangoの特徴
Djangoの特徴は以下の3点です。もちろんこれ以外の強みも多くあると思いますが、その中でも特に僕が便利だと感じた点を紹介しています。
- データベースに強い
- 同じPythonのWebフレームワークであるFlaskよりも大規模開発に向いている
- 機械学習と組み合わせられる
1.データベースに強い
まず、1つめのデータベースに強いというのは、DjangoはOracle、SQLite、MySQL、PostgreSQLなどのデータベースに対応しており、なおかつ簡単にデータベースを操作できるからです。
Djangoドキュメントのチュートリアルのような簡単なWebアプリの場合、ほとんどデータベースの知識は必要ありません。(あった方が良いのはもちろんですが。)つまり、Pythonの知識さえ最低限あれば、簡単なWebアプリが作れてしまうということです。
2.大規模開発に向いている
Djangoはログイン機能やセキュリティ対策など必要な機能が全てそろっており、基本的にはDjango単体でWebアプリを開発することができます。このようなフレームワークをフルスタック・フレームワークと呼び、DjangoのほかRuby on railsなどもこのフルスタック・フレームワークです。
一方でFlaskなどはマイクロフレームワークと呼ばれており、必要最低限の機能しか備えていません。そのため、足りない機能は拡張などで補うことになります。ただ、このようなマイクロフレームワークは小規模の開発をする際や初心者には、機能が少ないため分かりやすいというメリットもあります。
3.機械学習と組み合わせられる
DjangoでWebアプリケーションを開発する際にはPythonという言語を使いますが、そのPythonは機械学習に強い言語です。また、Webクローリング等もPythonを使うことで簡単に行うことができます。
そのため、機械学習やWebクローリングで得られたデータをDjangoを使って表示するWebアプリケーションを、Pythonという言語だけで実装することができるのはDjangoの強みです。
Djangoを利用しているサービス
例えば、InstagramやMozillaなどがDjangoを利用して開発された有名なサービスです。1度は使ったことがある人も多いのではないでしょうか。Pythonを使って、あのような素晴らしいサービスを作成することができます。
おわりに
この記事ではDjangoやWebフレームワークの紹介をしました。参考になれば幸いです。また、もしよろしければTwitter(@ryu_programs)のフォロー等もお願いします。この記事の次はDockerを利用したDjango開発環境構築の記事です。
公開しましたので、読んでみてください。