Pythonでサクッとアプリケーションを作りたいです!
Djangoを使えば、手軽にPythonアプリケーションを作れるぞ。
✔️ 本記事のテーマ
Djangoを使うメリットとその使い方
✔️ 読者さんへの前置きメッセージ
本記事は「Django(Pythonフレームワーク)」について書いています。
この記事を読むことで「DjangoのメリットやDjangoでアプリケーションを作る方法」をイメージできるようになります。
DjangohはPython用のWebアプリケーションフレームワークです。
フレームワークを使うことで、手軽に高品質なアプリケーションを作ることができます。
Pythonフレームワークはたくさん出ていますが、Djangoはその中でも一番ユーザーが多いフレームワークです。
Pythonが得意なら、ぜひDjangoでアプリケーションを作ってみましょう。
Django(Pythonフレームワーク)とは?
Django(ジャンゴ)は、Python用のWebアプリケーションフレームワークです。
オープンソースとして公開されているので、無料で使うことができます。
Webアプリケーションフレームワークとは、Webアプリケーションを開発する際によく使われる機能がまとまったソフトウェアのことです。
個人開発でアプリケーションを作るときでも、Djangoを使うことで短い期間で、かつ、高品質なアプリケーションを完成させることができます。
最近では、Instagramなどでも採用されていることから、その注目度が高まっているフレームワークといえるでしょう。
また、Herokuと組み合わせることでより手軽にWebアプリを作ることができます。
DjangoとHerokuのくみわせかたについては
「Django + Heroku のセットで無料でサービスを作る」の記事で解説しています。
Django(Pythonフレームワーク)の特徴
DjangoにはWebアプリケーションを開発するための便利な特徴があります。
具体的に、Djangoの特徴は以下の5つです。
- MTV設計という考え方
- 必要な機能が一通り揃っている
- セキュリティ的に安全な設計
- 高速な動作
- 学習のしやすさ
順番に、解説していきましょう
MTV設計という考え方
Djangoは「MTV」という設計思想に基づいて、作られています。
この設計思想は、
Model、Tenmplate、Viewという役割ごとに機能を分割するという考え方です。
これにより、Djangoを使うことで、機能ごとに独立したアプリケーションになるので、プログラムの保守性が向上します。
少し難しいかもしれませんが、MTV思想について完璧に理解していなくてもDjangoを使うことはできます。
「機能が分割されているので、プログラムを管理しやすくなっている」くらいの理解でOKです。
必要な機能が一通り揃っている
Djangoは、フルスタック・フレームワークと呼ばれるフレームワークです。
フルスタックとは、
Webアプリケーション開発に必要な機能が一通り揃っているという意味です。
Djangoは、Webアプリケーションには欠かせない、以下の機能をあらかじめ備えています。
- ユーザー認証
- 管理画面
- サイト内検索
- サイトマップ
- RSSフィード
このように、便利な機能を豊富に具備しているので、
Django一つで開発〜運用まで行うことができます。
関連記事:DjangoでLogin機能を作る【サンプルコード付き】
セキュリティ的に安全な設計
Djangoを使うことで、
セキュリティが堅牢なアプリケーションを作ることができます。
Djangoは、セキュリティが高くなるような仕組みを採用しています。
例えば、セッション情報の非管理化やパスワードはハッシュ化などの設計が施されています。
セキュリティについては、専門家でないと中々考慮することができませんが、Djangoを使うことで一定のセキュリティレベルを担保できます。
他にも、Djnagoでは、SQLインジェクション、クロスサイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ(CSRF)、クリックジャッキングなどの多くの攻撃手法に対して、対策を取っています。
先にも述べたとおり、有名企業が採用していることからもセキュリティの高さが分かりますね。
高速な動作
Djnagoでは、キャッシュ機能を使って、画面表示を高速化することができます。
Djangoでは、Memcahcedというキャッシュを保存する場所をあらかじめ用意されています。
その他の保存先としてファイルや、データベースを使うこともできます。
Webアプリケーションでは、SEOやユーザビリティの面でも、速度が非常に重要となってきます。
Djangoを使うことで、他のサービスを使わずとも、標準機能で高速化できるのは嬉しいですね。
学習のしやすさ
Django特徴の一つが学習がしやすいということも挙げることが出来るでしょう。
Djangoは公式で、学習のためのチュートリアル「Django Girls」が用意されています。
また、ユーザー数も多いフレームワークなので、
エラーが発生した時も解決ページがヒットする確率が高いです。
Django(Pythonフレームワーク)の使い方
Djangoは、使うための準備が簡略化されているので、手軽に使用することができます。
具体的な手順としては以下の通りです。
- インストール
- プロジェクトを作成する
- 言語とタイムゾーンの設定
- データベースのマイグレート
- スーパーユーザーの作成
- 開発サーバーを起動する
順番に、解説していきましょう。
イントールする
以下のコマンドでDjangoライブラリをインストールします。
$ pip install django
プロジェクトを作成する
まず、Djangoで作成するアプリケーションのためのプロジェクトを作成します。
任意の場所で以下のコマンドを実行すると、Djangoプロジェクトを作成することができます。
プロジェクト名は自分の好きな名前を選択できます。(下の例では”hogehoge”)
$ django-admin startproject hogehoge
コマンドを実行すると、下のようなディレクトリ構造のプロジェクトが作成されます。
hogehoge/
manage.py
hogehoge/
__init__.py
asgi.py
settings.py
urls.py
wsgi.py
言語とタイムゾーンの設定
言語とタイムゾーンも設定しておきましょう。
趣味開発なら別になんでも良いのですが、Web常に公開するときはSEOなどにも影響するので、なるべく設定しておきましょう。
プロジェクト内のsettings.pyを以下のように修正します。
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'
データベースのマイグレート
Djangoではマイグレートという作業をする必要があります。
マイグレートとは、アプリケーションで使うデータベースの定義を自動的に作成・管理するための準備です。
これをすることで、アプリケーションからデータベースを扱えるようになります。
作業自体は簡単で、以下のコマンドを実行すればOKです。
$ python manage.py migrate
スーパーユーザーの作成
ここまできたら、あと一歩です。
アプリケーションの管理者となる、スーパーユーザーを作成します。
以下のコマンドを実行します。
$ python manage.py createsuperuser
すると、ユーザー名やパスワード、メールアドレスを求められるので、ターミナル上で入力します。
ユーザー、パスワードを忘れると、ログインできなくなるので、どこかに控えておきましょう。
(万が一、忘れても新たにスーパーユーザーを作成すれば良いです。)
ユーザー名 (leave blank to use 'hoge'): admin
メールアドレス: hoge@example.com
Password: hogehoge
Password (again): hogehoge
Superuser created successfully.
開発用サーバーを起動する
ここまでの作業で必要な設定は完了しています。
どんどんアプリケーションを開発していきましょう。
なお、アプリケーションの途中経過を確認したいときは、
以下のコマンドで開発用サーバーを立ち上げることができます。
$ python manage.py runserver
作成したアプリーケーションの動作は開発用サーバーによって確認できます。
ブラウザで http://127.0.0.1:8000/
にアクセスすると、作成したアプリケーションが稼働しているでしょう。(正しく実装出来ていれば・・・)
Django(Pythonフレームワーク)の機能
Djangoでは、これまでに紹介した機能の他にもたくさんの機能が具備されています。
代表的な機能を紹介します。
- フォームの生成
- ログイン機能
- キャッシュ
- サイト管理
順に、深掘りしていきましょう。
フォームの生成
Webアプリケーションでは、フォームを生成する場面がたくさんあります。
よくサイトに登録するときに、名前や生年月日などを入力するフォームが出てきますよね。
あのようなフォームを、Djangoでは標準機能で作ることができます。
ログイン機能
いまではWebアプリケーションにおいて、ログイン機能は欠かすことができません。
Djangoでは、ログインのための機能があらかじめ用意されています。
さらに、Djangoではセキュリティを高く保つ仕組みになっているので、
安全にサイト設計を行うことができます。
なお、Djangoでログイン機能を作る方法は
「DjangoでLogin機能を作る【サンプルコード付き】」の記事で解説しています。
キャッシュ
Djangoでは、キャッシュのための標準機能が用意されています。
Webアプリケーションでは、キャッシュをしっかりと効かせることによって、表示速度を向上させることができます。
Webアプリケーションフレームワークとしては、嬉しい機能ですね。
サイト管理
Djangoにはサイト管理のための機能も用意されています。
アプリーションを管理者として操作するための機能が最初から使えるので、使い勝手が良いです。
アプリケーションのユーザー情報を管理したり、コンテンツなどを管理することができます。
Djangoについてもっと学ぶなら
Djangoには、今回紹介した機能以外にも多くの機能があります。
Djangoを基礎から学ぶためには以下の書籍がオススメです。
この書籍は Django について業務で必ず役に立つ実践的な観点で書かれています。
ユーザーモデルのカスタマイズ方法、認証処理のベストプラクティスなど
その解説は具体的で実践的です。
その一方で、モデルやビュー、テンプレートといった基本概念の解説も詳しく書かれています。
これから Django を学ぶ方にもより深く Django を学ぶ方にもオススメの書籍です。
エンジニアとしての自身の価値をチェックする(完全無料)
エンジニアとして、
自分の価値がどれくらいのものかご存知でしょうか?
エンジニアとしてIT業界に身を置いていると
今の会社でずっと働くのか、フリーランスとして独立するのか …
と様々な選択肢があります。
どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも
自身の価値を知っておくことはとても重要です。
TechClips ME では、
職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。
▼▼▼▼▼
▲▲▲▲▲
しかもTechClips MEでは想定年収を企業から提示してくれるので、
自身の価値を数字で分かりやすくたしかめることができます。
登録はもちろん完全無料なので、一度登録してみると良いかもしれません。
コメント