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 %}