zoukankan      html  css  js  c++  java
  • 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文件夹

    你要相信 一切都会好起来
  • 相关阅读:
    vue+node.js+webpack开发微信公众号功能填坑——组件按需引入
    myeclipse打开jsp页面慢或者卡死
    myeclipse自动添加注释
    解决java.lang.NoSuchMethodError:org.joda.time.DateTime.withTimeAtStartOfDay() Lorg/joda/time/DateTime
    Echarts柱状图实现不同颜色渐变色
    《Python学习手册 第五版》 -第38章 被管理的属性
    《Python学习手册 第五版》 -第37章 Unicode和字节串
    《Python学习手册 第五版》 -第36章 异常的设计
    《Python学习手册 第五版》 -第35章 异常对象
    《Python学习手册 第五版》 -第34章 异常编写细节
  • 原文地址:https://www.cnblogs.com/feifei-cyj/p/14396376.html
Copyright © 2011-2022 走看看