Pythonといえば、AIや機械学習、データサイエンスなどで利用されるプログラミング言語だと思う方が多いのではないでしょうか。しかし、PythonにはDjangoというフレームワークがあり、Djangoは世界中で利用されているフレームワークのひとつです。この記事では、Djangoの特徴や学び方を説明しています。
Contents
Djangoとは
出典:Django: The web framework for perfectionists with deadlines
2005年にリリースされたオープンソースのWebアプリケーションフレームワークでフルスタックになっており、大規模開発にも対応できる機能があらかじめ用意されています。そのため、Djangoを利用するだけで一通りのシステムを開発することができます。
DjangoはPythonのフレームワークで人気のあるものになっており、弊社TechReachのPythonフレームワークでは案件数が1番多くなっています。また、次に人気のあるPythonフレームワークはFlaskとなっており、業界全体を通してもこちらの2つがよく使われる傾向があります。
Djangoの特徴
Djangoの特徴を2つお伝えします。
MTVモデル
フレームワークの学習をしていると、MVCモデルという考え方(概念)を見聞きすることがあると思います。MVCモデルはModel、View、Controllerで役割を分担し、効率的かつ柔軟にシステム開発をすることができる考え方です。
一般的にはMVCモデルのフレームワークの方が多くなっていますが、DjangoはModel(モデル)、Template(テンプレート)、View(ビュー)のMTVモデルを採用しています。そして、MVCモデルとMTVモデルは基本的な概念は同じながらそれぞれの役割が少し異なっています。
MVCモデルのView(データの見せ方)の役割を、MTVモデルではTemplateとViewで分担します。また、MVCモデルのController(ModelとViewの制御)は、MTVモデルではURLディスパッチャに相当することになります。下記出典よりDjangoの公式ドキュメントでの説明がされていますので、具体的に知りたい方はぜひともご確認ください。
- セキュリティ機能が明確
Djangoはセキュリティに強い設計になっており、以下のような機能を持っています。
・HTMLに悪質なスクリプトを埋め込む埋め込む『クロス・サイト・スクリプティング (XSS) 』の防御
・悪意のあるURLにアクセスしてしまった結果、ユーザーが望まないリクエストをWebサービスに送られてしまう『クロス・サイト・リクエスト・フォージェリ(CSRF)』の防御
・SQL文の脆弱性を突き、データベースを不正利用する『SQLインジェクション』の防御
上記以外にも、『クリックジャッキング』や安全性の高い通信方法である『SSL』、『HTTPS』などのセキュリティ機能を有しています。こちらに関しても公式ドキュメントにて具体的に説明されているので、よろしければご確認ください。
出典:Djangoにおけるセキュリティ|Django ドキュメント
Djangoではなにが作れるのか?
InstagramやSpotify(音楽ストリーミングサービス)、Pintarest(ピンタレスト|WebやPinterest内にある画像などを収集しできるサービス)、PyQ(Pythonのオンライン学習サービス)など、Djangoで開発されたWebアプケーションは多岐にわたります。
これらのWebアプリケーションには、ログイン機能や管理画面の設定、コメント機能などの共通点があり、現在のWebアプリケーションには大体実装されているものといえるでしょう。
この記事の一番最初に説明したフルスタックフレームワークとは、これらのようなWebアプリケーションに必要な機能を準備しているもののことをいいます。そのためDjangoでは、管理画面の自動作成、ユーザー認証、ORM、セッションなどの機能を簡単に利用できるようになっており、効率的な開発が可能になっています。
世界中のWeb開発で利用されている
ドイツを本社に構える統計市場調査プラットフォームスタティスタ社では、2022年現在で、世界中の開発者の間で最も利用されているWebフレームワークのデータを公開しており、Djangoは9位にランクインしています。
出典:Most used web frameworks among developers 2022 – Statista
Djangoより上位のWebフレームワークはすべてJavaScript系のものになっているため、JavaScriptの人気を窺い知ることができます。しかし、9位のDjango、10位のFlaskはPythonのフレームワークです。機械学習やAIで有名なPythonですが、Webフレームワークでもよく利用されるものとなっています。
Djangoに触れてみよう
Djangoを利用するための手順をお伝えします。
Pythonとdjangoをインストールする
Python公式サイトにて、WindowsとMacへのインストール方法が詳細に記載されています。
- Windowsへのインストール方法
出典:4. Windows で Python を使う — Python 3.12.0a0 ドキュメント
- Macへのインストール方法
出典:5. Using Python on a Mac — Python 3.12.0a0 ドキュメント
また、下記の出典からPythonはダウンロード可能です。
- Djangoのインストール
Pythonのインストールが終わったあとは、下記出典に従いDjangoをダウンロードしましょう。
出典:クイックインストールガイド|Django ドキュメント
チュートリアル等で実際に書いてみる
チュートリアルとは、基本操作や初歩的な知識・技能を段階的に解説したものです。Djangoに限らず、フレームワークやライブラリは実際にプログラミングをしていくことで使えるようになっていきますので、次に紹介するチュートリアルや写経(インターネットや書籍でコードを見て、自分で写していくこと)をして勉強していきましょう。
また、写経をする際はQiita(キーター|エンジニアに関する知識の記録・共有サービス)やGitHubで公開されているコードを利用することもおすすめです。
Djangoについて学ぶには
Djangoを学ぶ方法を3つお伝えします。
チュートリアルを進める
まずはDjangoの公式チュートリアルを見てみましょう。
公式チュートリアルは、『はじめての Djangoアプリ作成、その1〜7』まであり、その4までにアプリケーションが完成します。また、公式ドキュメントで躓いてしまった際は、インターネット上に個人ブログなどで解説をしている記事もありますので積極的に活用していきましょう。
加えて、Djangoの公式ドキュメント以外では『Django Girls』もおすすめです。Django GirlsはWebアプリケーション開発の周辺知識についても解説がされているので、初心者にも優しくなっています。
出典:はじめに · HonKit – Django Girls
オンライン教材を利用する
オンライン学習サービスの『paiza ラーニング』と『Udemy』ではPythonのコースがありますので、文字だけでなく動画やイラストが入った環境で勉強を始めたい方はこちらもおすすめします。また、Pythonの学習に特化した学習サービスの『PyQ』でもDjangoの教材が用意されています。
上述した有料サービス以外では、個人が公開している学習サイトやYouTubeでもDjangoについて説明されているものがありますので、一通り調べてから学習教材を決めていきましょう。
書籍を使いながらプログラムを作ってみる
DjangoはPythonの人気フレームワークになっているため、参考書も多数販売されています。
参考書を購入する際は、大型書店などの品揃えがよい店鋪に行って実際に手に取って比較することをおすすめします。近くにそのような書店がない場合は、インターネット上の情報を含め、試し読みなどで内容を確認、比較しましょう。
まとめ
Djangoを利用した開発ができるようになれば、転職やフリーランスなどの案件で応募できる範囲が広がります。また、DjangoはPytorchなどのPythonライブラリも利用できるため、機械学習機能を持ったWebアプリケーションを開発することも可能です。Djangoに少しでも興味のある方は、インストールをして学習していきましょう。
フリーランスの案件をお探しの方はTechReachにご相談ください。
TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。
そのため、高単価・高品質な数多くの案件紹介が可能です。
また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。
TechReachを活用して、理想の案件を見つけましょう!