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文件夹
本文来自博客园,作者:Yi个人,转载请注明原文链接:https://www.cnblogs.com/feifei-cyj/p/14396376.html