实训项目第二周1
来源:互联网 发布:vb.net 多线程实例 编辑:程序博客网 时间:2024/06/07 23:59
上周我与组员一起完成了数据库的构建,这周我们的项目架构已经初步成型
用户提交代码注册和登陆都需要对数据库进行连接,这是注册(register)和登陆(login)的代码
# -*- 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'))
register包括email、username、password、check_email、check_username
login包括email、password
错误列表、代码储存和论坛
- 实训项目第二周1
- 第二周项目1
- 第二周项目1
- 第二周项目1
- 第二周 项目1
- 第二周项目-1
- 第二周项目1
- 第二周项目1
- 第二周项目1
- 【第二周】项目1
- 第二周 项目1
- 项目实训——第二周(1)
- 项目实训第二周2
- 实训项目第二周2
- 补 第二周 项目1
- 第二周 项目3-1
- 第二周项目三.1
- 项目实训——第二周(2)
- Java正则表达式的语法与示例
- ORB-SLAM2的ORBMATCHER代码阅读
- c#简单的窗体移动
- Java中IO操作
- Java面试题全集(中)
- 实训项目第二周1
- python 预测结果评价 准确率 精度 查全率 accuracy precision recall F1
- C语言基础-循环控制07
- ajax基础——如何用原生js封装一个ajax函数
- serializeArray()与 serialize()
- 34. Search for a Range
- bzoj 工作安排(最小费用最大流)
- ubuntu 下修改了/usr/lib下导致sudo无法使用
- obj 文件读取 openGL 显示3D图