Django-admin后台驗證登錄


訪問django admin后台,http://127.0.0.1:8000/admin/login/?next=/admin/

一、admin后台登錄

1、遷移數據庫(默認遷移到sqlite數據庫,之后要用mysql,還要再執行一遍)

python3 manage.py migrate

2、創建超級用戶

python3 manage.py createsuperuser

 

3、用創建的用戶登錄admin后台:http://127.0.0.1:8000/admin/

 

4、新增group,輸入名稱及可用權限,保存

5、新增user,輸入名稱及密碼,保存

 

 6、編輯user,修改用戶信息及可用權限

7、用新用戶登錄即可登錄后台

二、前端頁面登錄,admin進行后台認證

github地址:https://github.com/Oneperson1128/DjangoDemo  

1、在loginDemo文件夾代碼基礎上,修改views.py文件 

def login_action(request):
    if request.method == 'POST':
        username = request.POST.get("username", "")
        password = request.POST.get("password", "")
        #接受2個參數,用戶名 密碼,在用戶名密碼正確的情況下返回一個user對象。如果不正確,返回None
        user = auth.authenticate(username=username, password=password)
        if user is not None:
            auth.login(request, user)  # 登錄
            request.session['user'] = username  # 將session信息記錄到瀏覽器
            response = HttpResponseRedirect('/event_manage/')
            return response
        else:
            return render(request, "login.html", {'error': '用戶名或者密碼錯誤'})

        '''
        if username == "admin" and password == 'admin':
            # return HttpResponse("登錄成功")
            return HttpResponseRedirect('/event_manage/')
        else:
            return render(request,"login.html",{'error':'用戶名或者密碼錯誤'})
        '''

2、在瀏覽器訪問 http://127.0.0.1:8000/login/,輸入admin后台正確的用戶名密碼,成功跳轉登錄成功。失敗提示用戶名密碼錯誤。

成功:

 

失敗: 

三、禁止未登錄訪問

1、直接訪問http://127.0.0.1:8000/event_manage/,可以直接訪問。有登錄頁面就沒用了,所以我們要把這些“窗戶”都關上,使用戶只能通過登錄來訪問系統。

2、修改views.py文件

from django.contrib.auth.decorators import login_required
@login_required
def event_manage(request):
    return render(request, 'event_manage.html')

清空緩存-用無痕窗口訪問,直接訪問http://127.0.0.1:8000/event_manage/,可以看到跳轉到/accounts/login/?next=/event_manage/這里

 

3、修改urls.py文件

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/', views.login),
    url(r'^login_action/', views.login_action),
    url(r'^event_manage/', views.event_manage),
    url(r'^accounts/login/$', views.login),  #使之跳轉到登錄界面
]

再次訪問http://127.0.0.1:8000/event_manage/,可看到跳轉到了登錄界面。

github源代碼:https://github.com/Oneperson1128/DjangoDemo.git    本文章修改后的代碼:參考loginDemo2文件夾

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM