Djangoの機能でできること5つ|メリット・デメリット4つとは?
Djangoとはどんなフレームワーク?
Django(ジャンゴ)とは、Webアプリケーションフレームワークです。コードは、プログラミング言語のPythonで書かれています。そのため、PythonでWebアプリケーションを作成したい時に使用します。
フレームワークは、アプリケーション開発に用いることが多い機能をひとまとめにしたソフトウェアのことです。開発に取り入れることで、幅広いWebアプリケーションの開発が可能となり、効率的に作業を進めることができるようになります。
Djangoはオープンソースとして提供されているため、誰でも無料で使うことができます。Pythonを使った開発の作業効率や生産性を高めたい時や、Pythonで開発を行なうための実践的な勉強をしたい時に最適です。
Djangoで作成できることって?
Djangoでは、WebAPIやWebアプリケーションを作成できます。Webアプリケーションの中で作成できることは、サイト・ソーシャルネット・監理システムなど多様です。
使用するプログラミング言語のPythonがあらゆる開発に対適しているため、Djangoでも幅広い作成・開発が行えます。
WebAPI
Djangoで作成できること1つ目は、WebAPIです。Restful(RESTの原則で構築されたWebシステムをHTTPで呼び出すインターフェース)なWebAPIを作成する目的を持つツールキャストDjango REST frameworkが搭載されているため、WebAPIも簡単に作成できます。
REST(REpresentational State Transfet)は設計原則の集合・考え方の1つで、分散型システムにおけるソフトウェアの連携に適しています。Django REST frameworkのインストールと設定により、RESTの原則に基づくWebAPIを作成することが可能となります。
Webアプリケーション
Djangoで作成できること2つ目は、Webアプリケーションです。多くの情報を取り扱うニュースサイト・情報サイトからつながるソーシャルネット・特定のコンテンツを管理するシステムなど、さまざまなWebアプリケーションを作成することができます。
Djangoは、シンプルなコードから複雑なコードまで対応しています。簡易的なものであれば、最短数分で開発を完了させることも可能です。複雑なコードの作成は機能拡張により可能となり、いずれの場合も高品質なWebアプリケーションを作り上げることができるようになっています。
Djangoの機能でできること5つ
Djangoでは、管理画面の作成・ユーザー認証・サイトの案内ページ作り・RSSフィードの設置・静的ファイルの公開が行えます。これらは別の手段でも作れますが、Pythonで作成を行ないたい時には、Djangoを使用することで効率的に作業を進められます。
Djangoでできること1:管理画面を作れる
Djangoでできること1つ目は、管理画面を作れることです。フルスタックフレームワークであるDjangoには、はじめから基本の便利機能が揃っています。その機能の1つに管理画面があるため、テンプレートなどを用意しなくても管理画面を簡単に作成することができます。
フルスタックとは、Webアプリケーション実装に欠かせない機能が一式になっていることを意味します。フレームワークと呼ばれるものでも、その中に入っている機能には違いがあるため、実際の利便性も異なります。Dangoは一式タイプとして、初心者でも扱いやすくなっています。
Djangoでできること2:ユーザー認証ができる
Djangoでできること2つ目は、ユーザー認証です。よく用いられる基本的な機能が一式になっているフルスタックの一部には、ユーザー認証の機能も含まれています。そのことから、他で何かを用意しなくても、DjangoだけでPythonを用いたユーザー認証が行えます。
ユーザー認証ではセキュリティ面も気になりますが、Djangoはセキュリティ上のミスが起きにくいよう構成されています。たとえば、セクション情報の配置場所や、パスワードの保存方法にセキュリティ強化の仕組みが導入されています。
セッション情報に関して、クッキーにはセッションキーのみ、セッションデータそのものはサーバのデータベースに保存しています。送信されたパスワードは、ハッシュ関数で暗号化した状態で保存します。他、脆弱性に対する保護対策も多く採用しています。
Djangoでできること3:サイトの案内ぺージを作れる
Djangoでできること3つ目は、サイトの案内ページを作ることです。フルスタックの1つにサイト案内の機能が含まれているため、Djangoではサイトの案内ページも比較的簡単に作成・導入することができます。
ページの関連付けやテンプレートを探す作業が必要になるため、Django1つで全てを完了できるのはとても利便的と言えます。
サイトの案内ページは他のプログラミング言語やフレームワークでもよく作りますが、より簡単にスピーディに作成したいならPythonのDjangoがおすすめです。
Djangoでできること4:RSSフィードを付けられる
Djangoでできること4つ目は、RSSフィードを付けることです。RSSフィードの機能はあらかじめフルスタックに含まれているため、これまでのできることと同様に、RSSフィードも作成することができます。
作成に必要な機能を自分で探すよりは、スムーズで的確な作成になります。
RSSフィードとは、各種Webサイトの更新情報を配信する目的を持つ文章フォーマット(RSSフォーマット)の総称です。これを使って、自分の見出し・概要などを外部に提供する機能および仕組みを言います。ブログなど、更新を伝えたい時に有用な機能として知られています。
Djangoでできること5:静的ファイルを公開できる
Djangoでできること5つ目は、静的ファイルの公開です。Webサイトでは基本として、画像・JavaScript・CSSなど追加ファイルの配信が必要になります。これら静的ファイルの管理を簡単に行う目的で、Djangoにはdjango contrib statfilesという仕組みが搭載されています。
django contrib staticfilesでは、各アプリケーションから静的ファイルを1つの場所に集約し、運用環境で簡易的に公開することが可能です。集約は各アプリケーションに限らず、アプリケーションと同時に別の場所も指定して、1つの場所に静的ファイルを集めることもできます。
Djangoを利用するメリット4つ
Djangoを利用するメリットは、MTVモデルでアプリ開発が行えること・ネットに情報が多く学びやすいこと・素早いプロトタイプ開発が可能なこと・簡単に共有ができることです。
利用するフレームワークを選ぶ際には、各フレームワークが持つメリットの比較が必要になります。比較・検討の際に役立つよう、以下にDjangoが持つ良さの詳細をご紹介していきます。
Djangoを利用するメリット1:MTVモデルでアプリ開発が可能
Djangoを利用するメリット1つ目は、MTVモデルでアプリ開発が行えることです。DjangoのMTVモデルは、書いてある内容と場所が理解しやすいように、処理のすみ分けが明確になっています。そのため、自分が作ったコードも他者が作ったコードも読みやすいです。
MTVとは、Model・Template・Viewの頭文字をとったものです。Modelはデータベースの格納データ、Templateはテンプレートファイルで定義された各ページデザイン・Viewは表示するページを決める処理を意味します。MTVモデルには、上記3つの各モデルが揃っています。
Djangoを利用するメリット2:ネットに情報が多いので学びやすい
Djangoを利用するメリット2つ目は、ネットに情報が多くて学びやすいことです。Pythonは世界的に人気なプログラミング言語のため、提供されているフレームワークも複数あります。その中でDjangoは利用した企業や個人の数が多いため、ネットにも情報がたくさんあります。
アプリケーションフレームワークの解説サイトは英文表記が多い印象ですが、Djangoは日本でも利用者が多いため、日本語で記述された記事・サイトもあります。技術書など書籍にもDjangoについて解説されたものがあるため、学びやすいと感じる教材を選びましょう。
Djangoを利用するメリット3:素早いプロトタイプ開発が可能
Djangoを利用するメリット3つ目は、プロトタイプの開発が素早く行えることです。
「締め切りの味方である完全主義者」のモチーフが掲げられており、プロトタイプ開発がとても早いです。そのため、開発の見積もりがしやすく実用的です。
Djangoを利用するメリット4:簡単に共有ができる
Djangoを利用するメリット4つ目は、簡単に共有ができることです。Djangoでは再利用を想定したアプリケーションを作ることができますが、できることはそれだけではありません。作成したアプリケーションを共有することもでるようになっています。
しかも、簡単に共有できるよう設計されており、共有したアプリケーションを使う際の不便もありません。ビジネスの中では作成したアプリケーションを別メンバーや取引先などと共有することもあるため、有用な機能およびメリットになるでしょう。
Djangoを利用するデメリット4つ
Djangoには、デメリットもあります。それは、処理速度の遅さ・全機能の把握までにかかる時間の多さ・配慮が難しいセキュリティ面・注意が必要なModelへのマッピングです。検討時・利用時に知っておくべき情報ですので、確認しておきましょう。
Djangoを利用するデメリット1:若干処理速度が遅め
Djangoを利用するデメリット1つ目は、若干処理速度が遅めなことです。多機能な古スタックフレームワークのため、コードベースも大きくなっています。そのため、マイクロサービスのアーキテクチャを使ったフレームワークよりも、やや処理および応答が遅くなります。
しかし、重大な悪影響を与えるほどの遅さではありません。高速な処理が求められるアプリケーション開発でなければ、実質的に問題なく、効率的な作業を実現することができるでしょう。また、高速化させる実装方法も存在するため、興味がある方は調べてみてください。
Djangoを利用するデメリット2:全ての機能を把握するまで時間がかかる
Djangoを利用するデメリット2つ目は、全ての機能を把握するまでに時間がかかることです。フルスタックで多くの機能を搭載しているため、全ての機能を把握し、完全に使えるようになるまでには時間がかかります。
使い始めた時の知識や技能の程度にもよりますので、ある程度の知識や実務経験を持つ方であれば、把握するまでに多くの時間がかからないでしょう。しかし、開発に携わる上での知識や経験が浅い段階にある場合には、より時間がかかることが見込まれます。
Djangoを利用するデメリット3:セキュリティ面への配慮が難しい
Djangoを利用するデメリット3つ目は、セキュリティ面への配慮が難しいことです。DjangoのORMには、Active Recordのパターンが採用されています。そのため、複雑な問い合わせに対するSQL文の実行は難しくありませんが、セキュリティ面の配慮に関する難度は上がります。
しかしDjangoは、基本的なセキュリティ面への配慮として、SQLインジェクションやクロスサイトスクリプティングの脆弱性に対応しています。開発を行なう者に、セキュリティについてある程度の知識があれば、大きな問題にはならないでしょう。
Djangoを利用するデメリット4:Modelへのマッピングに注意
Djangoを利用するデメリット4つ目は、Modelへのマッピングに注意が必要なことです。マッピングとは、特定の項目に対し、別の項目の位置付けや割り当てを行なう規則の1つです。
データをインポートする時に、異なるデータ項目を同じ項目に関連付ける作業などがこれにあたります。
1つ前にご紹介したデメリットと同様、ORMにActiveRecordパターンを採用している影響で、DjangoではModelへのマッピングにも注意が必要になると言われています。DjangoでURLをマッピングする時は、正規表現での記述が必要です。
Djangoの使い方6つ
Djangoの使い方は、インストールからプロジェクトを作成し、各種設定などを完了させるまでが一連の作業になります。以下に流れを簡易的に説明していきますが、インストールに関するガイドは各種公開されているため、より詳しく知りたい方はそちらを参考にしてください。
Djangoの使い方1:インストール方法
Djangoをインストールする前に、パッケージ管理システムのPipの最新版をインストール(既にインストール済みの場合は最新版にアップグレード)します。また、PythonがDjangoの現バージョンに適している必要があるため、Pythonのバージョンも確認してください。
Pythonのバージョン確認と更新を終えて、最新版のPipを入れたら、Djangoのインストールを開始します。インストール済みのバージョン確認やDjangoのインストールは、コマンドプロンプト委上で必要なコマンドを入力することで行えます。
Djangoの使い方2:プロジェクトの作成方法
Djangoでプロジェクトを作成する時には、コマンドプロンプトで以下のコマンドを入力します。
~/example$ django-admin startproject mysite .
コマンドにはいくつかの種類がありますが、treeコマンドで出力した場合には、manage.pyとmysiteのディレクトリが作成されます。
Djangoの使い方3:ルーティングの設定方法
作成したプロジェクト内にあるmysite/urls.pyの部分を、必要に応じて編集します。編集を終えたら、helloworld/urls.pyを新規で作成して、以下のような記述を行ないます。
from django.urls import path
from . import views
urlpatterns = [
path(”, views.index, name=’index’),
]
Djangoの使い方4:Viewの作成方法
Viewを作成する時には、helloworld/views.pyの部分を編集します。
from django.shortcuts import render
from django.http import HttpResponse # 追加
# Create your views here.
# 以降、追加
def index(request):
return HttpResponse(‘ディレクトリ名’)
Djangoの使い方5:アプリケーション作成のサンプルコマンド
Djangoでアプリケーションの作成を行なう時には、以下のコマンドを入力します。
~/example$ python3 manage.py startapp helloworld
treeコマンドで出力した場合、以下のようにディレクトリとファイルが一覧となります。
~/example$ tree
.
├── helloworld
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
├── mysite
│ (中略)
└── requirements.txt
4 directories, 16 files
Djangoの使い方6:チュートリアルを活用する場合
Djangoの使い方を学びたい時や、Djangoでできることを実現したい時には、チュートリアルが役立ちます。チュートリアルには2つの種類が存在し、どちらも無料で利用することができます。
公式チュートリアルを使う
公式チュートリアルは、Djangoのドキュメントに記載されています。各機能の実装方法を設計思想と共に説明しているため、その内容に沿っていけば無理なく進められるでしょう。ただし、読み進めるには知識が必要なため、別のフレームワークで開発経験がある方に向きます。
Django Girls Tutorialを使う
Django Girls Tutorialは、比較的初心者向けの内容になっているチュートリアルです。各機能の説明だけでなく、URLやHTMLなどの基本用語まで解説されています。開発の基礎部分から読み進める方法で学べるため、初心者・未経験者でもDjangoについて学びやすいと言えます。
Djangoでできることを把握しておこう
Djangoでできることは、Pythonを使った効率的なWebアプリケーション開発です。具体的には、管理画面の作成・RSSフィードの設置・静的ファイルの公開などが行えます。フルスタックとしてできることが多いフレームワークですので、機能を把握して有効活用しましょう。