基于信号处理的在线云评测+社区系统( 4)

        20175-6月,本小组做山东大学软件工程专业项目实训。我们做的项目是基于信号处理的在线云评测+社区系统,我和另一位组员@zhan010g负责数据库后台方面。

本周我们写了以下代码来实现用户注册登录提交代码等功能。

  其中注册(register)包括email,username,password,check_email,check_username。

  登录(login)包括email,password。

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import get_object_or_404, render,render_to_response

# Create your views here.
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from django.template import loader,RequestContext
from django.views import generic
from django import forms

from .models import Problem,User,SubmitCode,AcceptedCode,Discussion,Response

class LoginForm(forms.Form): 
    email = forms.CharField(label='email',max_length=32)
    password = forms.CharField(label='password',widget=forms.PasswordInput())

class RegisterForm(forms.Form): 
    email = forms.CharField(label='email',max_length=32)
    username = forms.CharField(label='username',max_length=16)
    password = forms.CharField(label='password',widget=forms.PasswordInput())

class LoginView(generic.TemplateView):
    template_name = 'judgeOL/login.html'
#register page
class RegisterView(generic.TemplateView):
    template_name = 'judgeOL/register.html'

#problem list page
class ProblemsView(generic.ListView):
    model = Problem
    template_name = 'judgeOL/problems.html'
    context_object_name = 'problem_list'
    def get_problems( page_num):
        return Problem.objects.all()[0:50]

#coding page , submit code , get resutl
class CodingView(generic.TemplateView):
    template_name = 'judgeOL/coding.html'

#bbs page, so many discussions
class DiscussionView(generic.TemplateView):
    template_name = 'judgeOL/discussions.html'

# every discussions have a lot of responses
class ResponseView(generic.TemplateView):
    template_name = 'judgeOL/responses.html'
# editing page. for response and create a new discussion
class editView(generic.TemplateView):
    template_name = 'judgeOL/edit.html'

def login(request):
    if request.method == 'GET':
        userform = LoginForm()
        return render_to_response('judgeOL/login.html',RequestContext(request))
    else:
        userform = LoginForm(request.POST)
        if userform.is_valid():
            email = userform.cleaned_data['email']
            password = userform.cleaned_data['password']
            success = User.objects.filter(mail=email,password=password)
            if success:
                """response.set_cookie('email',email,3600)
                return HttpResponseRedirect('judgeOL:problems',RequestContext(request))"""
                return HttpResponseRedirect(reverse('judgeOL:problems'))
            else:
                return HttpResponseRedirect(reverse('judgeOL:login'))

def register(request):
    if request.method == 'GET':
        userform = RegisterForm()
        return HttpResponseRedirect(reverse('judgeOL:register'))
    else:
        userform = RegisterForm(request.POST)
        if userform.is_valid():
            email = userform.cleaned_data['email']
            username = userform.cleaned_data['username']
            password = userform.cleaned_data['password']
            check_email = User.objects.filter(mail = email)
            check_username = User.objects.filter(name = username)
            if check_email and check_username:
                return HttpResponseRedirect(reverse('judgeOL:register'))
            else:
                User.objects.create(name=username, password=password, mail=email)
                return HttpResponseRedirect(reverse('judgeOL:login'))

方面的代码,对注册路径进行了具体分析。下面是我们注册路径的代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值