django创建登录和注册,注销策略

django创建登录和注册,注销策略

第一步:创建应用

1
python manage.py startapp accounts

第二步:url规则添加

1
2
3
4
5
#用户的处理中心
url(r '^accounts/$' , 'accounts.views.index' ,name = 'accounts_home' ),
url(r '^accounts/register$' , 'accounts.views.register' ,name = 'accounts_register' ),
url(r '^accounts/login$' , 'accounts.views.login' ,name = 'accounts_login' ),
url(r '^accounts/logout$' , 'accounts.views.logout' ,name = 'accounts_logout' ),

第三步:action的添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!-*- coding=utf-8 -*-
 
'''
用户中心
'''
def  home(request):
     pass
 
'''
用户注册页
'''
def  register(request):
     pass
 
'''
用户登录页
'''
def  login(request):
     pass
 
'''
用户注销页accounts
'''
def  logout(request):
     pass


第四步:template文件(模板文件的添加)的添加
注册页面(这个页面根据自己的需求定义,项目不同,设计不同)


登录页面(这个页面根据自己的需求定义,项目不同,设计不同)


个人中心(这个页面根据自己的需求定义,项目不同,设计不同)

第五步:完善action

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!-*- coding=utf-8 -*-
from  django.shortcuts  import  render_to_response
from  django.template  import  RequestContext
from  django.http  import  HttpResponseRedirect
from  django.core.urlresolvers  import  reverse
from  django.utils.translation  import  ugettext as _
from  django  import  forms
from  django.contrib.auth  import  authenticate, login as auth_login, logout as auth_logout
from  django.contrib.messages  import  constants as messages
from  django.contrib  import  messages
from  django.contrib.auth.models  import  User
 
 
 
def  home(request):
     '''用户中心'''
     if  request.user.is_authenticated():
         user  =  request.user;
     else :
         user  =  request.user;
     return  render_to_response( 'accounts/home.html' ,{ 'user' :user},context_instance = RequestContext(request));
 
def  register(request):
     '''用户注册页'''
     template_var  =  {}
     form  =  RegisterForm()
     if  request.method = = "POST" :
         form = RegisterForm(request.POST.copy())
         if  form.is_valid():
             username  =  form.cleaned_data[ "username" ]
             email  =  form.cleaned_data[ "email" ]
             password  =  form.cleaned_data[ "password" ]
             repassword  =  form.cleaned_data[ "repassword" ]
             if  password ! =  repassword:
                 return  HttpResponse( '重复登录密码与登录密码不一致' );
             user  =  User.objects.create_user(username, email, password)
             user.save()
             validate_login(request, email, password)
             return  HttpResponseRedirect(reverse( "accounts_home" ))
     return  render_to_response( 'accounts/register.html' ,{ 'form' :form},context_instance = RequestContext(request));
 
def  validate_login(request, username, password):
     '''验证用户登录'''
     return_value  =  False
     user  =  authenticate(username = username,password = password)
     if  user:
         if  user.is_active:
             auth_login(request,user)
             return_value  =  True
         else :
             messages.add_message(request, messages.INFO, _(u '此账户尚未激活,请联系管理员' ))
     else :
         messages.add_message(request, messages.INFO, _(u '此账户不存在,请联管理员' ))
 
     return  return_value
 
def  login(request):
     '''用户登录页'''
     template_var  =  {}
     form  =  LoginForm()
     if  request.method  = =  "POST" :
         form  =  LoginForm(request.POST.copy())
         if  form.is_valid():
             validate_login(request, form.cleaned_data[ "username" ], form.cleaned_data[ "password" ])
             return  HttpResponseRedirect(reverse( 'accounts_home' ))
     template_var[ "form" =  form
     return  render_to_response( 'accounts/login.html' , template_var, context_instance = RequestContext(request));
 
 
def  logout(request):
     '''用户注销页'''
     auth_logout(request)
     return  HttpResponseRedirect(reverse( 'home' ))
 
class  LoginForm(forms.Form):
     username = forms.CharField(label = _(u "登录账号" ), widget = forms.TextInput(attrs = { 'placeholder' : '登录账号' , 'class' : 'input-block-level' }))
   
   password = forms.CharField(label = _(u "登录密码" ), 
widget = forms.PasswordInput(attrs = { 'placeholder' : '登录密码' , 'class' :' input -
block - level'}))
 
class  RegisterForm(forms.Form):
     '''注册表单'''
     username = forms.CharField(label = _(u "登录账号" ), widget = forms.TextInput(attrs = { 'placeholder' : '登录账号' , 'class' : 'input-block-level' }))
     email = forms.EmailField(label = _(u "邮件地址" ), widget = forms.TextInput(attrs = { 'placeholder' : '登录邮箱' , 'class' : 'input-block-level' }))
   
   password = forms.CharField(label = _(u "登录密码" ), 
widget = forms.PasswordInput(attrs = { 'placeholder' : '登录密码' , 'class' :' input -
block - level'}))
     repassword = forms.CharField(label = _(u "重复登录密码" ), 
widget = forms.PasswordInput(attrs = { 'placeholder' : '重复登录密码' , 'class' :' input -
block - level'}))
 
     def  clean_username( self ):
         '''验证昵称'''
         username  =  User.objects. filter (username__iexact = self .cleaned_data[ "username" ])
         if  not  username:
             return  self .cleaned_data[ "username" ];
         raise  forms.ValidationError(_(u "该昵称已经被使用" ));
 
     def  clean_email( self ):
         '''验证email'''
         email  =  User.objects. filter (email__iexact = self .cleaned_data[ "email" ])
         if  not  email:
             return  self .cleaned_data[ "email" ];
         raise  forms.ValidationError(_(u "改邮箱已经被使用" ));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值