山东大学项目实训——5月25日

完成了以下任务:

一、由于django不建议自定义user,对自定义user的支持很差,所以修改表结构并migrate


二、完成了登录功能


代码如下:

view.py:

def login(req):
    if req.method == 'GET':
        if req.user.is_anonymous():
            if req.GET.get('next'):
                req.session['next'] = req.GET.get('next')
            return ren2res("login.html", req, {})
        else:
            return HttpResponseRedirect("/")
    elif req.method == 'POST':
        user = auth.authenticate(username=req.POST.get('username'), password=req.POST.get('password'))
        if user is not None:
            auth.login(req, user)
            next = req.session.get('next')
            if next:
                return HttpResponseRedirect(next)
            else:
                return HttpResponseRedirect('/')
        else:
            return ren2res("login.html", req, {'err': "Wrong Username or Password!"+
                "US:"+req.POST.get('username')+'  PS:'+req.POST.get('password')})

注册功能:


代码:view.py

def register(req):
    if req.method == 'GET':
        if req.user.is_anonymous():
            if req.GET.get('next'):
                req.session['next'] = req.GET.get('next')
            return ren2res('register.html', req, {})
        else:
            return HttpResponseRedirect('/')
    elif req.method == 'POST':
        username = req.POST.get("username")
        email = req.POST.get('email')
        result = User.objects.filter(username=username);
        p = re.compile('^[0-9a-zA-Z_]+$')
        if len(username) == 0 or p.match(username)==None:
            return ren2res('register.html', req, {'err': "Invalid username"})
        elif len(email) == 0:
            return ren2res('register.html', req, {'err': "Email can't be null"})
        elif len(result) != 0:
            return ren2res('register.html', req, {'err': "This username has been registered! Try another"})
        else:
            pw1 = req.POST.get('pw1')
            if pw1 == "":
                return ren2res('register.html', req, {'err': "Password can't be null", 'account': account})
            pw2 = req.POST.get('pw2')
            if pw1 != pw2:
                return ren2res('register.html', req, {'err': "Password not consistent", 'account': account})
            else:
                newuser = User()
                newuser.username = username
                newuser.email = email
                newuser.set_password(pw1)
                newuser.is_staff = 0
                newuser.is_active = 1
                newuser.is_superuser = 0
                newuser.save()
                newuser = auth.authenticate(username=username, password=pw1)
                auth.login(req, newuser)
                next = req.session.get('next')
                if next:
                    return HttpResponseRedirect(next)
                else:
                    return HttpResponseRedirect('/')

3、初步开发交题


四、下次之前完成交题和评测显示


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值