博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django用户认证
阅读量:6473 次
发布时间:2019-06-23

本文共 2412 字,大约阅读时间需要 8 分钟。

 

 

用户登录:

def logon(request):    errors_list = []    if request.method == 'POST':        u = request.POST['uname']        p = request.POST['upass']        #验证用户        user = authenticate(username=u, password=p)        if user is not None:            auth_login(request, user)            #登录成功后重定向到主页            return HttpResponseRedirect("/sinfors/")        else:            try:                #检查用户密码是否正确                if not auth_User.objects.get(username = u).check_password(p):                    errors_list.append(u + ' password is not correct')             #检查用户是否存在(auth_User.objects.get(username = u))            except auth_User.DoesNotExist:                errors_list.append(u + ' does not exist')     return render(request, 'sinfors/login.html', {
'errors_list':errors_list})

 

页面添加认证:

#对页面增加验证@login_required(login_url="/sinfors/logon/") def index(request):    servers = infor.objects.all()    #验证如果用户登录成功,则取相应的用户名显示在主页    if not request.user.is_anonymous():        user_loggedin = request.user    else:        user_loggedin = 'Guest'    context = {
'servers':servers,'user_loggedin':user_loggedin} return render(request,'sinfors/index.html',context)

 

新增用户,修改/验证密码:

#新建用户user = User.objects.create_userusername='',password='',email='')user.save #不使用user.save()#重置密码user.set_password(passeord='')user.save #检查用户输入的密码是否正确user.check_password('password')

 

扩展用户字段:

model:

class UserProfile(models.Model):      user=models.OneToOneField(User,unique=True)    phone=models.CharField(max_length=20)    addr=models.CharField(max_length=500)    def ztest(self):        if len(self.phone) < 8:            return 'The phone num is not correct'        else:            return 'The phone num is  correct'    def phone_len(self):        return len(self.phone)    p_len = property(phone_len)  #custom a property

 

print request.user.userprofile.phone          print request.user.userprofile.user          print request.user.UserProfile          print dir(UserProfile)          UserProfile.C_userp('test01','03129999999','HB'):                      u = auth_User.objects.get(username='test')          a=UserProfile.objects.get(user=u)          print a.ztest()          print a.p_len                      uu=request.user          u = auth_User.objects.get(username=uu)          a=UserProfile.objects.get(user=u)          print dir(UserProfile.objects)          print a          UserProfile.C_userp(uu,'12345','AH')

 

转载地址:http://dsvko.baihongyu.com/

你可能感兴趣的文章
DNS为什么通常都会设置为14.114.114.114
查看>>
给定一个序列,判断该序列是否为二叉树查找树的后序遍历序列
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
查看>>
leveldb学习:DBimpl
查看>>
[Recompose] Stream Props to React Children with RxJS
查看>>
打印图片
查看>>
SHOW CREATE DATABASE Syntax
查看>>
rsync常见问题及解决办法
查看>>
AKM项目轶事之GBS同事转入GDC
查看>>
MySQL日期 专题
查看>>
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
[LeetCode] Number of 1 Bits 位操作
查看>>
JSON中JObject和JArray,JValue序列化(Linq)
查看>>
杂七杂八
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>