訪問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文件夾