django入门笔记9 - auth用户验证&权限

来源:互联网 发布:oracle sql分页优化 编辑:程序博客网 时间:2024/06/10 03:18

auth安装

       1.确认已经安装了session 框架。 需要确认用户使用cookie,这样sesson 框架才能正常使用。1

       2.将 'django.contrib.auth' 放在你的 INSTALLED_APPS 设置中,然后运行 manage.py syncdb以创建对应的数据库表。

       3.确认 SessionMiddleware 后面的 MIDDLEWARE_CLASSES 设置中包含'django.contrib.auth.middleware.AuthenticationMiddleware' SessionMiddleware。

      

使用:

       判断用户是否登录

              ifrequest.user.is_authenticated():

       后台登录用户:

              username= request.POST.get('username', '')

              password= request.POST.get('password', '')

              user= auth.authenticate(username=username, password=password)

              ifuser is not None and user.is_active:

                     #Correct password, and the user is marked "active"

                     auth.login(request,user)

                     #Redirect to a success page.

                     returnHttpResponseRedirect("/account/loggedin/")

              else:

                     #Show an error page

                     returnHttpResponseRedirect("/account/invalid/")

       后台登出用户

              auth.logout(request)

       使用默认的登录登出,配置URL即可:

              fromdjango.contrib.auth.views import login, logout

              urlpatterns= patterns('',

                     #existing patterns here...

                     (r'^accounts/login/$',  login),

                     (r'^accounts/logout/$',logout),

              )

       修改用户密码:

              user.set_password('googoo goo joob')

 

修饰符

       登录的修饰符:

              @login_required

              defmy_view(request):

       自定义修饰符

              defuser_can_vote(user):

                     returnuser.is_authenticated() and user.has_perm("polls.can_vote")

              @user_passes_test(user_can_vote,login_url="/login/")

              defvote(request):

       专用于权限的修饰符

              @permission_required('polls.can_vote',login_url="/login/")

                     defvote(request):

 

             

用户的权限

       Django的admin站点如下使用权限:

              只有设置了 add 权限的用户才能使用添加表单,添加对象的视图。

              只有设置了 change 权限的用户才能使用变更列表,变更表格,变更对象的视图。

              只有设置了 delete 权限的用户才能删除一个对象。

       权限在syncDB的时候,在auth_permission表中以 "<app>.<action>_<object_name>" 的形式出现。

      

用户的消息:

       创建

              user.message_set.create(message='message_text')

       获取和删除:

               user.get_and_delete_messages()

       使用context模版输出:

              views中

                     returnrender_to_response("playlists/create.html",

                     context_instance=RequestContext(request))

              template中

                     {%for message in messages %}

                            <li>{{message }}</li>

                     {%endfor %}

原创粉丝点击