
DjangoアプリケーションにLogin機能を作りたいです。



Djangoには標準でLogin機能が用意されている。簡単に作れるぞ。
✔️ 本記事のテーマ
DjangoのLogin機能とその使い方
✔️ 読者さんへの前置きメッセージ
本記事は「DjangoのLogin機能」について書いています。
この記事を読むことで
「DjangoでLogin機能を作る方法 や Login機能の基本的な使い方」
を理解できます。
いまでは、Webアプリケーションを作る上で、Login機能は欠かせません。
DjangoではそのようなLogin機能について、標準で用意されています。
そのため、いくつかの決まったルールに従うことで、
簡単にLogin機能をアプリケーションに追加することができます。
それでは、DjangoのLogin機能や使い方について詳しく解説していきましょう。
Djangoとは?
Django(ジャンゴ)は、Python用のWebアプリケーションフレームワークです。
オープンソースとして公開されているので、無料で使うことができます。
Webアプリケーションフレームワークとは、Webアプリケーションを開発する際によく使われる機能がまとまったソフトウェアのことです。
Djangoを使うことで、コンテンツ管理システムやニュースサイトやSNSサイトを手軽に作成することができます。
個人開発でアプリケーションを作るときでも、
Djangoを使うことで短い期間で、かつ、高品質なアプリケーションを完成させることができます。
なお、Djangoを使って無料でサービスを作る方法については
「Django + Heroku のセットで無料でサービスを作る」の記事で解説しています。
DjangoのLogin機能を実装する方法
既に述べたように、Djangoでは標準機能としてLogin認証が用意されています。
これらを使うことでさくっとLogin認証を実装することができます。
なお、公式ドキュメントにも説明があります。
Login機能の実装は3ステップです。
- プロジェクトにLogin機能用のappを作成する
- 設定に作成したappを追加する
- Login成功後のURLを定義する
順番に詳しく見ていきましょう。
プロジェクトにLogin機能用のappを作成する
DjangoのLogin機能を使う為には、Login機能用のappを作成する必要があります。
以下のコマンドでDjangoProjectにappを作成します。
$ django-admin startapp accounts
設定ファイルに作成したappを追加する
次に、先ほど作成したappを設定ファイルに追加します。
この作業をすることでDjangoアプリケーションの中で、
ログイン機能を呼び出すことが可能になります。
DjangoProjectのsettings.pyファイルに以下の記述を追記します。
INSTALLED_APPS = [
...
'accounts.apps.AccountsConfig', # 追加
]
Login成功後のURLを定義する
最後にLogin成功後のURLを定義します。
普段、私たちが使っているサイトでも、
Loginした後にトップページやマイページが表示されると思います。
そのような「Loginに成功した後にどのページを表示するか」を定義する必要があります。
Login成功後のURL定義もsettings.pyで行うことができます。
# ログイン後トップページにリダイレクト
LOGIN_REDIRECT_URL = '/top/'
ここまでの作業で、DjangoアプリケーションでLogin機能を作ることができました。
次から、実際にLogin機能を使用する部分について解説していきます。
DjangoでLogin機能を使用する
ここまでの作業でLogin機能を実装できていれば、
実際にLogin機能を使用するのは簡単です。
デコレータをつけてやることで、Login機能が使うことができます。
例えば、ユーザーがトップページにアクセスした時に、Login認証を要求したいのであれば、
View関数のトップページに関する関数に `@login_required` のデコレータをつけることで、Login認証画面が表示されるようになります。
@login_required
def top(request):
return render(request, './top.html')
DjangoでLogin機能に、ユーザー登録機能を追加する
Djangoでは、Login認証機能は標準で用意されています。
ところが、ユーザー登録機能は自前で用意する必要があります。
基本的にLogin認証機能を使用する場合、
当然、ユーザー登録機能も使用することになると思います。
そのため、ユーザー登録機能についてもサンプルコードを載せておきます。
- accounts/urls.py
urlpatterns = [
path('signup/', views.SignUpView.as_view(), name='signup'),
]
- accounts/views.py
from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic
class SignUpView(generic.CreateView):
form_class = UserCreationForm
success_url = reverse_lazy('login')
template_name = 'accounts/signup.html'
このように、ユーザー登録機能についても、数行のコードで実装することができます。
DjangoのLogin画面、Logout画面を作る
ここまでの作業で必要なLogin機能は完成しているので、ここからは応用編です。
DjangoはLogin画面、Logout画面についても標準で用意されています。
さらに、Login画面、Logout画面は自分のサイトに合うように、
カスタマイズすることができます。
DjangoProjectの「./templates/registration/html/にlogin.html, loged_out.html」という名前のファイルを置くことでこれらのファイルがアプリケーションのLogin画面、Logout画面として読み込まれます。
DjangoのLogin機能の特長
ここまでDjangoのLogin機能について解説してきました。
では、そんなDjangoのLogin機能の特長はなんでしょうか?
それは「簡単に実装できる」かつ「高いセキュリティ」ということです。
簡単に実装できる
ここまで解説してきたように、Djangoでは標準でLogin機能が実装されています。
この標準機能を利用することで、短い時間でLogin機能を実装することができます。
また、既に用意されているものを利用することで、高い品質を担保することができます。
このようにアプリケーション開発でよく使うLogin標準機能が用意されていることは大きなメリットがあります。
なお、今回紹介したLogin機能以外の使い方については
「Djangoの使い方【Pythonフレームワーク】」で解説しています。
高いセキュリティ
Djangoはセキュリティが高く保たれています。
Djangoの公式サイトにも記載がある通り、
SQLインジェクション、XSS、CSRFなどにも対応しています。
Webアプリケーションにおいては、セキュリティは重要な検討事項の一つです。
これが担保されているのは、非常に嬉しいですね。
DjangoやPythonについてもっとスキルをつけるなら
DjangoのLogin機能について解説しました。
Djangoには、Login機能以外にも多くの便利な機能があります。
Djangoを基礎から学ぶためには以下の書籍がオススメです。
この書籍は Django について業務で必ず役に立つ実践的な観点で書かれています。
ユーザーモデルのカスタマイズ方法、認証処理のベストプラクティスなど
その解説は具体的で実践的です。
その一方で、モデルやビュー、テンプレートといった基本概念の解説も詳しく書かれています。
これから Django を学ぶ方にもより深く Django を学ぶ方にもオススメの書籍です。
エンジニアとしての自身の価値をチェックする(完全無料)
エンジニアとして、
自分の価値がどれくらいのものかご存知でしょうか?
エンジニアとしてIT業界に身を置いていると
今の会社でずっと働くのか、フリーランスとして独立するのか …
と様々な選択肢があります。
どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも
自身の価値を知っておくことはとても重要です。
TechClips ME では、
職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。
▼▼▼▼▼



▲▲▲▲▲
しかもTechClips MEでは想定年収を企業から提示してくれるので、
自身の価値を数字で分かりやすくたしかめることができます。
登録はもちろん完全無料なので、一度登録してみると良いかもしれません。
コメント