练习随笔 - 幼儿园系统
models页面

from django.db import models

class Grade(models.Model):
name = models.CharField(max_length=20,verbose_name='年级')
def __str__(self):
return self.name

class Course(models.Model):
name = models.CharField(max_length=20,verbose_name='课程名称')
grade = models.ForeignKey(Grade,on_delete=models.SET_NULL,null=True,blank=True)
def __str__(self):
return self.name

class User(models.Model):
name = models.CharField(max_length=20,verbose_name='姓名')
username = models.CharField(max_length=20,verbose_name='用户名')
password = models.IntegerField(verbose_name='密码')
grade = models.ForeignKey(Grade,on_delete=models.SET_NULL,null=True,blank=True)
def __str__(self):
return self.name



# Create your models here.

from django.shortcuts import render,HttpResponse,redirect
from web import models

def index(request):
grade = models.Grade.objects.all()
course = models.Course.objects.all()

return render(request, 'index.html', locals()) #把变量传到html中

def login(request):
#登录页面
if request.method == 'GET':
return render(request, 'login.html')
if request.method == 'POST':
username = request.POST.get('username') #输入账号
password = request.POST.get('password') #输入密码
user_obj = models.User.objects.filter(username=username,password=password).first()#数据库匹配
if user_obj: #判断是否有对应账户和密码是否匹配
request.session['user_id']=user_obj.id #存session
return redirect('/show/') #返回
else: #如果账户和密码不匹配
return HttpResponse('用户名或密码错误')

def register(request): #注册
if request.method == 'GET':
grade = models.Grade.objects.all()
return render(request,'register.html',locals())
if request.method == 'POST':
name = request.POST.get('name') #输入名称
grade = request.POST.get('grade')#选择班级
username = request.POST.get('username') #输入登录名
password = request.POST.get('password') #输入登录密码
re_pwd = request.POST.get('re_pwd') #重复提交密码
if grade and username and password and re_pwd: #判断是否获取到三个值
if password == re_pwd: #如果两次输入密码一致
user_obj = models.User.objects.filter(username=username).first() #查询用户名是否存在
if user_obj: #如果已经存在
return HttpResponse('用户已存在')
else: #如果都没有存在就将输入的存入数据库
models.User.objects.create(name=name,username=username,password=password,grade_id=grade).save()
return redirect('/login/') #返回
else: #如果两次密码输入不一致
return HttpResponse('两次密码不一致')
else: #如果有空值
return HttpResponse('不能有空!')

def show(request): #展示学生页
user_id = request.session.get('user_id') #取session
user = models.User.objects.all().filter(id=user_id).first()
course = models.Course.objects.all()
grade = models.Grade.objects.all().filter(id=user.grade_id).first()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页展示课程表</title>
</head>
<body>
<table border="1">
<tr>
<td><font color="red">年级</font></td>
<td colspan="3" align="center"><font color="red">课程</font></td>
</tr>
{% for i in grade %}
<tr>
<td>{{ i.name }}</td>
{% for x in course %}
{% if x.grade_id == i.id %}
<td>{{ x.name }}</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
</table>

</body>
</html>

login页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<h1>登陆界面</h1>
{#最简单的html代码#}
{#这里要提醒下,提交到后台的get,post方式都可以,但是作为账户数据的话,用post#}
<form action="/login/" method="post">
{# form表单#}
{% csrf_token %}
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登陆">
</form>
</body>
</html>

register页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>register</title>
</head>
<body>
<h1>注册界面</h1>
<form action="" method="post">
{% csrf_token %}
姓名:<input type="text" name="name"><br>
班级:<select name="grade" id="">
{% for i in grade %}
<option value="{{ i.id }}">{{ i.name }}</option>
{% endfor %}
</select><br>
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
确认密码:<input type="password" name="re_pwd"><br>
<input type="submit" value="注册">
</form>
</body>
</html>

show页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页展示</title>
</head>
<body>



欢迎你, {{ user.name }}小朋友<br>
{{ grade.name }}

{% for x in course %}
{% if x.grade_id == user.grade_id %}

{{ x.name }}

{% endif %}
{% endfor %}


<br>
{% if user.grade_id == 3 %}
{% else %}
<button><a href="/sheng/">点击提升班级</a></button>
{% endif %}
</body>
</html>

#通过session查询登录的teacherid
context = {
'user' : user,
'course' : course,
'grade' : grade
}

return render(request, 'show.html', context)

def up(request):
user_id = request.session.get('user_id') # 取session
user = models.User.objects.all().filter(id=user_id).first()
if user.grade_id <3 :
user.grade_id = user.grade_id + 1
user.save()
return redirect('/show/')

# Create your views here.
HTML页面

index页面



posted on 2019-05-21 17:24  一个不正常的程序猿  阅读(100)  评论(0)    收藏  举报