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