2020年6月20日URLをコピーしました!いままで,FlaskやDjangoでログイン画面を実装する際には,入力された値(ユーザー名やパスワード)をデータベースに問い合わせし,一致したらログイン成功,不一致の場合ログイン失敗という処理をわざわざベタベタにコードで書いていたのだが,実はDjangoではログイン処理をAPI一発で呼び出せるらしい。覚えれば非常に便利,楽です。目次ログインアプリケーションの作成まずは,ログイン用のアプリケーションを作成しておきます。accountsログイン/ログアウトの処理はこちらのアプリーケーション内に記述します。(どのサイトもアプリ名がaccountsだったのでそれに合わせ込み,アプリ名はaccountsとして作成。今回の構成を以下のようにします。manage.pytemplatesディレクトリの追加その下にaccountsディレクトリを作成し,ログイン関係のhtmlファイルをここに格納しておきます。urls.pyの作成レンダリング情報を記述します。毎度のことながら,settings.pyとurls.py(プロジェクト内の方)の記述/追記を行っていきます。settings.pyにはINSTALLED_APPSにaccounts.apps.AccountsConfigを追加です。#追加]プロジェクト配下のurls.pyにはaccountsのpathを通しておきます。#追加]アプリ配下のurls.pyにはログイン/ログアウトそして,ログイン成功時のホーム画面へののレンダリングを記述します。name="home"),]auth_views.LoginView.as_view()としてDjangoのログイン用APIを使っていきます。ログアウトも同じです。引数のtemplate_nameでログインURL時に返すHTMLファイルを指定します。これで,独自のHTMLを用いたログイン画面の開発が可能となります。本来urls.pyで記述したURLレンダリング時の処理をviews.pyに記述を行うのですが,ログイン/ログアウトのAPIを用いた場合はこの記述が必要ありません。ここでは,ログイン成功時に遷移するHOME画面の設定だけしておきます。(home.htmlを返すだけにしておきます。独自のログイン画面をHTMLで作成していきます。今回は以下のようにしてみました。%}の記述を忘れずに。DjangoのログインAPIを用いた場合は,この書き方でログインフォームを自動で作成してくれます。オシャレな感じではありませんが...。CSSやBootstrapなりで今後オシャレにしていきます...。ログインフォーム画面このフォーム内にSuperuserで作成したアカウント情報を入力することで,ログイン可能となります。空白だとデフォルトのユーザー名となります。入力しなくても構いません。(2回入力を行います)ログイン後のページ遷移ログイン後にレンダリングしたいページの設定はsettings.pyで行います。最後に追記しておきましょう。今回はログイン成功時にHOME画面に遷移するようにしておきます。'/accounts/home'では,遷移されるホーム画面を適当に作っておきましょう。</body></html>ログイン成功後は「<ユーザ名>でログイン中」という文言が表示されます。ログイン状態でのみホーム画面へ遷移どのサービスもログインをしていない状態では個人ページへの遷移はできないはずです。今のままでは/accounts/homeとURLを直でブラウザへ入力するとホーム画面へ遷移できてしまいます。そこで,ログインしていない場合はホーム画面へは遷移させない作りに変えていきます。...といってもたった2行の追加ですが。views.pyに追記します。#追加2#これ以降の記述はログインしないと処理されません。'accounts/home.html')ログインユーザーにしか見せたくない記述は@login_requiredより下に処理を書いておきます。/accounts/homeにログインしていない状態で進むと,見事にログイン画面に強制的に遷移させられました。これで,一通りDjangoのAPIを使った自作ログイン画面の構築は完了です。次はログインページにCSSを使いオシャレにしていきます。Scriptはstaticというディレクトリに格納するだけ。それだけで読み込みが簡単なのですがDjangoはいろいろと設定が多くてめんどくさい印象...Djangoについて学びたい方へ書籍で学びたいならDjangoのWebアプリの設計・作成はもちろん、Webサーバー・アプリ周りの知識も幅広く扱ってくれています。(購入)Djangoについて深く知りたいという方におすすめしています。プログラミングの知識がないと理解が難しいかもしれません。pythonが書ける方には非常にタメになるDjangoアプリ開発におすすめ書籍でした。定番の授業からマニアックな授業まで幅広く扱っているので、学びたいことは大体あります。今回はPython+Djangoの授業をおすすめします。Djangoの基礎から応用までこの授業で学べます。実際にWEBアプリを作成し、公開するところまで親切に教えてくれます。【徹底的に解説!】Djangoの基礎をマスターして、3つのアプリを作ろう!読んでおくべきおすすめ記事あわせて読みたいDjangoでHTMLで作成したページを表示させるだけ。