import pymysql
from django.shortcuts import render, redirect, HttpResponse
from utils import sqlhelper
import json
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
# Create your views here.
def login(request):
'''
用户登录
:param request:
:return:
'''
username = request.POST.get('username')
pwd = request.POST.get('pwd')
if request.method == 'POST':
if username == 'thanlon' and pwd == '123456':
obj = redirect('/user/class/')
obj.set_signed_cookie('ticket', 'thanlon', salt='123456')
return obj
else:
return render(request, 'login.html')
def classes(request):
"""
查询班级信息
:param request:
:return:
"""
ticket = request.get_signed_cookie('ticket', salt='123456')
if not ticket:
return redirect('/login/')
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("select id,title from class")
class_list = cursor.fetchall()
# print(class_list)
# [{'id': 1, 'title': '软件工程'}, {'id': 3, 'title': '网络工程'}, {'id': 4, 'title': '计算机科学与技术'}]
cursor.close()
conn.close()
return render(request, 'class.html', {'class_list': class_list})
def add_class(request):
"""
添加班级信息
:param request:
:return:
"""
# 如果是get请求就返回add_class.html模板就可以
if request.method == 'GET':
return render(request, 'add_class.html')
# 如果是post请求则执行下面的代码
else:
# 获取班级的标题
class_title = request.POST.get('class_title')
print(class_title)
# 创建数据库连接对象
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 将班级的名称传到sql语句中
cursor.execute('insert into class(title) values(%s)', class_title)
# cursor.execute("insert into class(title) values(%s)", [class_title, ])
# 提交(查询不需要,其它如添加、修改、更新数据是需要执行commit方法才能将数据插入成功)
conn.commit()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
# 添加之后就会重定向到/classes/路由,会显示添加后的班级
return redirect('/user/class/')
def edit_class(request):
"""
编辑班级信息
:param request:
:return:
"""
# 如果是get请求,这里额外也需要查询下数据库,把原来的信息也展示出来
if request.method == 'GET':
# 获取客户端传过来的班级id
nid = request.GET.get('nid')
# 创建数据库连接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 执行游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 执行sql语句
cursor.execute('select id,title from class where id=%s', nid)
# 获取查询到的所有数据
result = cursor.fetchone()
# print(result)
# {'id': 1, 'title': '软件工程'}
# 创建游标
cursor.close()
# 关闭连接
conn.close()
# 返回模板和数据
return render(request, 'edit_class.html', {'result': result})
# post请求用来修改班级信息
else:
# nid = request.POST.get('nid') # 放到请求体
nid = request.GET.get('nid') # 放到请求头
title = request.POST.get('title')
# 创建数据库连接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 执行sql语句
cursor.execute('update class set title=%s where id = %s', [title, nid])
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
return redirect('/user/class/')
def del_class(request):
# 获取客户端传过来的nid,我们要个根据nid来删除数据
nid = request.GET.get('nid')
# 创建连接对象
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 执行sql语句
cursor.execute('delete from class where id=%s', nid)
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
return redirect('/user/class/')
def student(request):
'''
学生信息列表
:param request:封装了请求相关的所有信息
:return:返回模板和数据
'''
# 创建连接对象
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 查询学生信息列表
cursor.execute(
'select student.id,student.name,class_id,class.title from student left join class on student.class_id=class.id')
# 获取查询到的所有数据
student_list = cursor.fetchall()
paginator = Paginator(student_list, 1)
current_page = request.GET.get('page')
try:
posts = paginator.page(current_page)
except PageNotAnInteger as e:
posts = paginator.page(1)
except EmptyPage as e:
posts = paginator.page(1)
# 查询班级信息
cursor.execute('select id,title from class')
# 获取查询到的所有班级列表
class_list = cursor.fetchall()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
# 返回模板和数据
return render(request, 'student.html', {'student_list': student_list, 'class_list': class_list, 'posts': posts})
def add_student(request):
"""
添加学生信息
:param request:
:return:
"""
# 如果是get请求
if request.method == 'GET':
# 创建连接对象
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 执行查询的sql语句
cursor.execute("select id,title from class")
# 获取查询到的所有数据
classe_list = cursor.fetchall()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
# 返回模板和数据
return render(request, 'add_student.html', {'class_list': classe_list})
# 如果是post请求
else:
# 获取学生的名字
name = request.POST.get('name')
# 获取学生的班级id
class_id = request.POST.get('class_id')
# 创建连接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 将学生的名字和班级的id信息放到sql中
cursor.execute("insert into student(name,class_id) values (%s,%s)", [name, class_id, ])
# 执行事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
# 返回模板
return redirect('/user/student/')
def edit_student(request):
"""
编辑学生信息
:param request:
:return:
"""
# get请求时
if request.method == 'GET':
# 获取传过来的学生id
nid = request.GET.get('nid')
# 创建连接对象
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.Dict
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
django实现学生信息管理系统,学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。
资源推荐
资源详情
资源评论
收起资源包目录
stu-django-master.zip (29个子文件)
stu-django-master
db.sqlite3 0B
student_info
__init__.py 0B
wsgi.py 401B
urls.py 2KB
settings.py 3KB
asgi.py 401B
app
__init__.py 0B
tests.py 60B
admin.py 63B
migrations
__init__.py 0B
apps.py 81B
models.py 57B
views.py 21KB
utils
sqlhelper.py 3KB
templates
add_teacher.html 1KB
add_student.html 1KB
student.html 10KB
teacher.html 7KB
login.html 2KB
class.html 8KB
layout.html 4KB
edit_student.html 2KB
add_class.html 473B
edit_teacher.html 1KB
edit_class.html 600B
manage.py 632B
test.sql 4KB
static
js
jquery-3.5.1.min.js 87KB
images
loading.gif 1KB
共 29 条
- 1
资源评论
博士僧小星
- 粉丝: 1896
- 资源: 5877
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功