こんにちは!!
LiSMOtechの久津間です。
PythonでWEBアプケーション開発を爆速で行うにあたっていくつかのFW(フレームワーク)の選択肢がありますが、今回の記事ではDjango(ジャンゴ)について紹介していきます。
これからpythonを使ってWEBアプリケーションを開発したい方や、Djangoって聞いたことがあるけど使ったことはない、って方を対象に、少しでもDjangoに興味をお持ちになっていただけたり、実際に手を動かしてみるきっかけになると幸いです。
それでは、Djangoとはどういったものなのか、Djangoの特徴について触れて理解を高めていきましょう。
目次
Djangoは、Pythonで開発を行うことが可能なWebアプリケーションフレームワークです。
pythonは世界で注目されており、人気の高い言語であるため、Djangoを使ったことがある方も多くいるかと思います。
DjangoのWebアプリケーションフレームワークを使うことにより、ブログサイト、掲示板、管理サイトのようなWebアプリケーションを爆速、効率的に開発することができます。
上記にも記載したとおり、Pythonの人気が高まってきている近年では、WEBアプリケーションを開発する言語・FWの選択肢の中からDjangoが採用されているケースも少なくないかと思います。
Djangoで作られているサービスの代表例として以下のサービスがあります。
・Pintrest
・Clubhouse
・Bitbucket
・openstack …
Instagramを中心に聞いたことがあるサービスや、一度は使ったことのあるサービスが多いのではないでしょうか。
人気のプログラミング言語Pythonが様々な開発に対応していることもあり、Djangoでも幅広い開発を行うことができます。
当然ですが、WEBアプリケーションの開発を行うことができます。
SEOコンテンツなどを作り込んでいくメディアサイトか、ソーシャル系のサイト、マッチングサイト、業務アプリケーションなど様々なWEBアプリケーションを作成することが可能です。
簡易的なものであれば、爆速で開発を完了することもできるため、非常におすすめです。
複雑な要件であっても機能を拡張することができ、高品質なWEBアプリケーションを作成することができます。
DjangoでAPIを開発することができます。
Django REST frameworkを使うことでRESTの原則に基づくAPI開発をすることができ、標準的なデータフォーマットで多様なアプリケーションを提供することができます。
PythonのWEBアプリケーションフレームワークを検討される際は、Flaskも選択肢に入ることが多いです。
ここでは2つのWEBフレームワークの違いについて紹介しておきます。
Flask | Django | |
機能 |
必要最低限 Flaskではカスタマイズ性は高く、必要最低限の機能が備わっています。 |
豊富 カスタマイズ性は低いですが、デフォルトでWeb開発に必要な機能が豊富です。 |
規模 |
小さい 市場の感じを見ていると個人開発のうような、わりと規模が小さい開発に使われている印象です。 |
大きい 使われているサービスでご紹介したとおり、規模の大きい開発に使われている傾向が多く、利用企業も多いです。 |
Djangoを採用することはいくつかのメリットがあります。
DjangoではWebアプリでよく使われる「ユーザー認証・ログイン・ログアウト」「メール送信」「管理画面」などの機能があります。
これらの機能をゼロから開発を行うには負担になり、初心者にも厳しいことが予想されます。
Djangoを使用すれば、テンプレートやDBアクセスに使うソフトなどを自分で探す必要がなくなり、アプリケーション開発に集中することができます。
複数のエンジニアで開発を行う現場では、ディレクトリを初めとするファイルの構成や命名規則がバラバラになってしまうことがあります。
しかし、Djangoではファイル作成やディレクトリの構成にルールがあるため、チーム全体の品質も向上されます。
Djangoを使うことによって、SQLインジェクション、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、クリックジャッキングなどの、一般的なセキュリティ対策をDjango側で提供してくれています。
そのほかにもパスワードはハッシュ化し、データベースに格納されます。
このようにDjangoを使うことで、セキュリティの信頼性を高めることが可能です。
モジュールの独立性が高いことから、メンテナンスや拡張がしやすく設計されています。
Do not Repeat Yourself(DRY)によってコードの再利用がコンセプトとなって作られており、原則として保守性が高く、再利用が可能となっています。
完全な初心者にとっては、いかなるWEBフレームワークでもキャッチアップするのに時間を要すると思いますが、何かしらのWEBフレームワークを扱ったことがある方にとっては、学習コストが低くなると思います。
というのも、比較的メジャーなWEBフレームワークになるので、インターネット上における情報量が多いことや多数の書籍が出版されているため、キャッチアップしやすいことがあげられます。
Djangoは以下の3つの構成・役割が存在します。
これらの3構成をまとめてMTVモデルといった呼び方がされます。
MTVはDjangoを扱って開発する上で、とても大切な概念となります。
モデル(model)は「データをどのように扱うか、処理するかを決定し、SQL文を発行してデータベースと連携」します。
データの保存もデータの取得も、このモデルを経由してデータベースにアクセスされます。
テンプレート(templete)では、「ブラウザにどのような情報、コンテンツを表示させるか決め、指定」します。
HTMLやCSS、JavaScriptを記載する必要があるので、これらの言語等も合わせて理解しておく必要があります。
ビュー(view)では、「クライアント(ユーザー)からのリクエストをもとにモデルとテンプレートとデータのやりとりを行い、受け取ったデータベースの情報とテンプレート情報を組み合わせてレスポンス」を返します。
Djangoの要となるビュー(view)を扱えるようになることで、ユーザーと情報の橋渡しを行うことができるようになります。
以上、「Django(ジャンゴ)とは?pythoneフレームワークのDjango(ジャンゴ)でWEBアプリケーション開発のすすめ」でした。
今後のWEBアプリケーション開発を行う際に是非Djangoを採用してみてください。
次の記事では実際に手を動かし、Djangoの環境構築であったり、MTVについてご紹介していきたいと思います。
それでは、最後までありがとうございました。
NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。
企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。
平日10:00〜19:00
© NEXTGATE LiSMOtech All rights reserved