<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                >[success] # django自帶的登錄 * * * * * >[danger] ##### authenticate-驗證用戶名密碼是否存在 **英文鑒定的意思,引入下面這個庫** `from django.contrib.auth ` **使用方法:** ~~~ user = authenticate(username=username,password = pwd) 講解: 接收用戶名和密碼,注意這里返回的是一個對象,如果不存在返回是None <class 'django.contrib.auth.models.User'> ~~~ * * * * * <br> >[danger] ##### login-驗證用戶名密碼是否存在 `from django.contrib.auth import login` > login()使用Django的session框架來將用戶的ID保存在session中。 **官方文檔建議用法:** ~~~ from django.contrib.auth import authenticate, login def my_view(request): username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) # Redirect to a success page. ... else: # Return an 'invalid login' error message. ... ~~~ * * * * * <br> >[danger] ##### logout-退出當前用戶 **官方文檔建議:** ~~~ from django.contrib.auth import logout def logout_view(request): logout(request) # Redirect to a success page. ~~~ * * * * * <br> >[danger] ##### 代碼解讀 **注:** ``` 這里用了自帶的驗證裝飾器。詳細見-crm下的view from django.contrib.auth.decorators import login_required 講解 ``` **講解:** ``` 當用戶沒登錄的時候,訪問一些只有登錄后才能訪問的頁面, 鏈接在上面說的裝飾器的修改下,會在當前的登錄頁面后面加 ?next='訪問的調回頁面的網址' ``` **如圖:** ![](https://box.kancloud.cn/9f211c9b5a2fb3d44bdaf461f71477f7_351x45.png) ``` 所以在request.GET.get('next',"/login/"),做了點文章,如果不存在next應該讓頁面重新調回原來的登錄鏈接,如果登錄成功了,頁面會自動訪問之前的訪問失敗頁面 ``` ![](https://box.kancloud.cn/157d0f9c2dad6c7d9a4e4edca6b42f83_710x319.png) >[danger] ##### 完整代碼 ~~~ from django.shortcuts import render,redirect from django.contrib.auth import authenticate,login,logout # Create your views here. def acc_login(request): erro = "" if request.method == "POST": username = request.POST.get('username') pwd = request.POST.get('password') user = authenticate(username=username,password = pwd) if user: login(request,user) # return redirect("/crm/") return redirect(request.GET.get('next',"/login/")) else: erro="用戶名密碼錯誤" return render(request,'login.html',{'erro':erro}) def acc_logout(request): logout(request) return redirect('/login/') ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看