ルーティングの設定
- ルーティング設定(ルーティングCBVおよびFBVが設けられており、CBV使用される以下)
1つの URL(R ' ^ログイン/ '、views.LoginView.as_view())、
新しいビュー、ユーザー認証
- ビューの作成、インポートする必要がdjango.views.generic.baseインポートビューから、新しいビューは、ビューを継承する必要があります
- 使用auth.authenticate()ユーザー認証
- 使用auth.login()、ユーザ情報を用いて、そのようなセッションID、からrequest.userによってフロントエンドのような付加的な情報への認証されたユーザを。
。1 から django.views.generic.base インポート見る 2 #ユーザー認証を使用して導入認証、情報ログインユーザを保存してログイン 。3 から django.contrib.auth インポート認証、ログイン 。4 。5 。6 #はビュークラスはビューを継承する必要があります作成します 。7 クラスLoginView (表示) 。8 。9 #はGETメソッド、自動的方法実行モードを取得するためのユーザ要求定義 10を DEF (セルフ、リクエスト)を取得する: 。11 リターンレンダリング(リクエストを、' login.htmlと' ) 12は 13であり、 #は、ユーザポット方法を定義します自動的にメソッド実行要求ウェイポット、 14 DEFをPOST(自己、要求): 15 #ここでは、フォーム成分の使用である 16 login_form = (request.POSTの)LoginForm 17。 IF )(login_form.is_valid: 18である USER_NAME = request.POST.get(' ユーザ名'、'' ) 。19 = request.POST.get pass_word(「パスワード」、「」) 20である #の使用は、ユーザ認証を認証し、2つのフィールドは、ユーザ名を記述する必要があり、パスワード 21は 、ユーザ認証=(USER_NAME =ユーザ名、パスワード= pass_word) 22である #のユーザ認証認証がNullに失敗した場合に採択した後、ユーザーは、値を持っている 23 IF ユーザー: 24 ログイン(要求、ユーザ) 25 リターンレンダリング(リクエスト、' index.htmlを' ) 26は、 他: 27 リターン(要求をレンダリングし、' login.htmlと'、{ ' MSG ':" ユーザー名またはパスワードエラー" } ) 28 他: 29 リターンレンダリング(要求、' login.htmlと' { ' login_form ':login_form.errors})
メールボックスの認証を増やします
- 書き換えのauthenticateメソッドのサポートEメールの検証を
1 #インポートModelBackend 2 から django.contrib.auth.backends インポートModelBackend 。3 。4 位ModelBackend継承する必要があり、クラスCustomBackendを定義する 。5 クラス(ModelBackend)をCustomBackendを: 6 #書き換え認証方法を、確認メールを増加 7。 DEF認証(セルフ、要求をなし=ユーザー名、パスワード=なし、** kwargsから): 8 試し: 9 ユーザー= UserProlfile.objects.get(Q(ユーザー名=ユーザー名)| Q(メール=ユーザー名)) #達成し、レベルのクエリ 10 IF user.check_password(パスワード): 11 リターンユーザー 12は、 13である 除くE AS例外: 14 リターンなし 15 #プロジェクトファイルsettings.pyに配置された 16 #メールボックス認証 17の。 = AUTHENTICATION_BACKENDS事項( 18ある ' users.views.CustomBackend ' 、 19。 )
- フォーム使用される成分は、後で追加しました
参照:https://www.cnblogs.com/xiugeng/p/9299083.html