フロントもビュー、モデル、モジュール、アドレスの関係の簡単なロジックについて書いた、とそれぞれが引用し説明しています。通常、我々はコンテンツを通じて、以前の最初で学んだ、今日のログインを持つことになり、ほとんどのWebページを参照して、簡単なログインページを作成します
要件ドキュメント
我々はまた、その需要を理解する最初の試験を、ここで最初の明確な需要。アカウントのパスワードが間違っている場合は、静かなブログページに直接移動し、正しいアカウントのパスワードを入力し、ログインページに入力された、エラーがログインページでアカウントのパスワードが失敗するプロンプトが表示されます。需要は非常にシンプルですが、また、アイデアを持っている最初の。
思考
1は、最初のフロントページのログインを書きます。
2、アカウント名が正しく入力された裁判官
3、アカウント名が正しいこと、そして静かなブログページに直接ジャンプ
4、アカウント名を間違って、そのアカウントのパスワードプロンプトエラー
小規模チョッパー
あまり話をしなかった、我々は考え出した、あなたが書き込みを開始することができます思いました
ログインページ
私たちは、簡単なログインページの使用(フロントエンド静かに書かれていない、COU COUは東で、西の戦いの戦いは、~~を見ないように)ことを書いた最後の時間
注意:
図1は、ここでは、ユーザー名とパスワードはバックエンドのために、後に=「XXX」のパラメータを指定する必要があります持っています。
2、 < フォームアクション=「/ Login2 /」メソッド、=「POST」> パスワードが間違っている場合ここでは、リクエストメソッドがPOSTである、また、このページでは、現在のページのページに戻ります
login2.html <!DOCTYPE HTML > < HTML LANG = "EN" > < 頭> < メタ文字コード= "UTF-8" > < タイトル>首页</ タイトル> </ ヘッド> < 身体> < H1 > < p個のスタイル= "テキスト整列:中央」フォントサイズ= "2" >欢迎来到安静的博客:</ P > </ H1 > < スタイル= "テキスト整列:センター" >请输出账号密码:</ P > </ H1 > < フォームアクション= "/ login2 /" 方法= "POST" > {%csrf_token%} < p個のスタイル= "テキストベース整列:センター」>用户:< 入力タイプ= "テキスト" 名前= "ユーザ名" /> < BR /> </ P > < P スタイル= "テキスト整列:センター" >密码:<入力タイプ=「パスワード」名前= "パスワード" /> < BR /> < 入力タイプ= "提出" 値= "登录" /> </ 構成> </ ボディ> </ HTML >
裁判官の善悪アカウントのパスワード
直接死亡した無添加のデータベース、最初に書かれたアカウントのパスワードがあります。(フォローアップを最適化していきます)
view.py
#インポートリダイレクトモジュール、直接、要求されたページ から django.shortcuts インポートレンダリング、リダイレクト DEF Login2(要求を): IF request.method == ' POST ' : ユーザ名 = request.POST.get(' ユーザ名' ) パスワード =リクエスト.POST.get(' パスワード' ) #の分析アカウントのパスワード IFユーザ名== ' Anjing ' とパスワード== ' 1234 ' : #適切に静かなブログページ、または特定のページへの復帰に戻ったとき のリターンリダイレクト(「https://www.cnblogs.com/qican/ 」) それ以外: #のパスワードが記述しないように間違っている パスを 返します(レンダリング要求、「login2.htmlを")
URLの間に書かれた対応
urls.py から django.urls インポート経路 から Anjing インポートビュー #間の完全な対応関係 urlpatternsを= [ パス(' Login2 / ' 、views.login2) ]
Djangoのログインに成功した結果をデバッグする直接開始
私たちは、アカウントのパスワードが正しい入力した後に見ることができ、ブログの静かに直接ジャンプし、ログインに失敗した場合は、このページに滞在し続けます。
需要がこのGETはないか、間違ったアカウントのパスワードを使用してプロンプトのリターンを残してきましたか?上記、リターンフロントエンドのデータを考えると、我々はHTMLで重要なパラメータを定義することができ、その後、エラーが直接返されます
エラーパラメータを追加します。
前記 < Pのスタイル= "色:赤、テキスト整列=左:センター" > {{}} ERROR_MSG </ P >は 、プレゼンテーションコンテンツエラーを意味します
ここで、Djangoテンプレート言語フォーマット: {{変数名}}
login2.html <!DOCTYPE HTML > < HTML LANG = "EN" > < 頭> < メタ文字コード= "UTF-8" > < タイトル>首页</ タイトル> </ ヘッド> < 身体> < H1 > < p個のスタイル= "テキスト整列:中央」フォントサイズ= "2" >欢迎来到安静的博客:</ P > </ H1 > < スタイル= "テキスト整列:センター" >请输出账号密码:</ P > </ H1 > < フォームアクション= "/ login2 /" 方法= "POST" > {%csrf_token%} < p個のスタイル= "テキストベース整列:センター」>用户:< 入力タイプ= "テキスト" 名前= "ユーザ名" /> < BR /> </ P > < P スタイル= "テキスト整列:センター" >密码:<入力タイプ=「パスワード」名前= "パスワード" /> < BR /> < 入力タイプ= "提出" 値= "登录" /> < p個のスタイル= "色:赤、テキスト整列:センター" > {{ERROR_MSG}} </ P > < / フォーム> </ ボディ> </ HTML >
ビューは、エラーの内容を追加する必要があります
views.py から django.shortcuts インポートレンダリング、リダイレクト DEF Login2(要求): #は空のエラー定義 = ERROR_MSGを'' IF request.method == ' POST ' : ユーザ名 = request.POST.get(' ユーザ名' ) パスワード request.POST.get =(' パスワード' ) #分析アカウントのパスワードは、 IFユーザ名== ' Anjing ' とパスワード== ' 1234 ' : #特定のページへの正しい静かなブログページへの復帰、またはリターン リターンリダイレクト(「https://www.cnblogs.com/qican/ 」) それ以外: #アカウントのパスワードが間違っ直接エラーの場合 ERROR_MSG = " ユーザー名またはパスワードが正しくありません。再入力してください' を返すレンダリング(リクエスト、' login2.html '{ ' ERROR_MSG ":ERROR_MSG})
再起動Djangoは、ログインの失敗の影響を見るために
私は、私たちのニーズがすべて完了していることがわかりますあなたに書き込みます。
新しい知識
ここでは新しい知識ポイントの導入がリダイレクトモジュールであり、我々はまた、レンダリング、HttpResponseにフロントを使用しました。だから3との違いは何ですか?
1は、 HttpResponseのアプリケーションシナリオは:指定された文字列を返します。
2、アプリケーションシナリオをレンダリングするには:HTMLファイルを返します。
3、リダイレクトアプリケーションのシナリオ:特定のページにジャンプします