Compare commits
8 Commits
master
...
lrs-branch
Author | SHA1 | Date |
---|---|---|
|
2944987428 | 1 year ago |
|
cc79137b3c | 1 year ago |
|
f0f04b1320 | 1 year ago |
|
7bc09e1bc6 | 1 year ago |
|
1fa138dd24 | 1 year ago |
|
fd5e26b71a | 1 year ago |
|
d2b971806f | 1 year ago |
|
e2f26fff22 | 1 year ago |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Time : 2023/9/12 9:37
|
||||
# Author : lirunsheng
|
||||
# User : l'r's
|
||||
# Software: PyCharm
|
||||
# File : urls.py
|
||||
|
||||
from django.urls import path
|
||||
|
||||
from .views import *
|
||||
|
||||
urlpatterns = [
|
||||
path("teacher/", teacher_manage),
|
||||
path('course/',course_selection)
|
||||
]
|
@ -1,3 +1,216 @@
|
||||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
||||
from django.http import JsonResponse, HttpResponseBadRequest, HttpResponse
|
||||
from teacher.models import Teacher
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from io import BytesIO
|
||||
from django.http.multipartparser import MultiPartParser
|
||||
from django.http import QueryDict
|
||||
from course.models import Course, SC
|
||||
from Student.models import Student
|
||||
from django.db.models import Q
|
||||
from django.db.models import Subquery, OuterRef
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from ast import literal_eval
|
||||
from MySQLdb import IntegrityError
|
||||
from EduSystemServer.utils import ResponseUtil
|
||||
@csrf_exempt
|
||||
def teacher_manage(request): # 教师个人信息修改
|
||||
if request.method == "POST":
|
||||
username = request.POST.get('username')
|
||||
password = request.POST.get('password')
|
||||
name = request.POST.get('name')
|
||||
sex = request.POST.get('sex')
|
||||
title = request.POST.get('title')
|
||||
education = request.POST.get('education')
|
||||
dept = request.POST.get('dept')
|
||||
if (username and password and name and sex
|
||||
and title and education and dept):
|
||||
try:
|
||||
teacher = Teacher()
|
||||
teacher.username = username
|
||||
teacher.password = password
|
||||
teacher.name = name
|
||||
teacher.sex = sex
|
||||
teacher.title = title
|
||||
teacher.education = education
|
||||
teacher.dept = dept
|
||||
teacher.save()
|
||||
response = ResponseUtil.ok(teacher.to_dict(), "老师信息插入成功")
|
||||
return JsonResponse(response)
|
||||
except:
|
||||
response = ResponseUtil.error("老师信息插入未成功,用户名重复!")
|
||||
return JsonResponse(response)
|
||||
else:
|
||||
response = ResponseUtil.error("老师信息插入未成功,存在空值,请你仔细检测并上传")
|
||||
return JsonResponse(response)
|
||||
|
||||
elif request.method == "GET":
|
||||
name = request.GET.get('name')
|
||||
sex = request.GET.get('sex')
|
||||
title = request.GET.get('title')
|
||||
education = request.GET.get('education')
|
||||
dept = request.GET.get('dept')
|
||||
# 定义空查询条件
|
||||
conditions = Q()
|
||||
if name:
|
||||
conditions &= Q(name=name)
|
||||
if sex:
|
||||
conditions &= Q(sex=sex)
|
||||
if title:
|
||||
conditions &= Q(title=title)
|
||||
if education:
|
||||
conditions &= Q(education=education)
|
||||
if dept:
|
||||
conditions &= Q(dept=dept)
|
||||
# 添加非空查询条件至基本查询集
|
||||
query = Teacher.objects.filter(conditions)
|
||||
data = query.values() # 将 QuerySet 对象转换为字典列表
|
||||
data = list(data) # 转换为列表以便序列化为 JSON
|
||||
print(query)
|
||||
response = ResponseUtil.ok(data, "老师信息查询成功")
|
||||
return JsonResponse(response)
|
||||
|
||||
elif request.method == "DELETE":
|
||||
# parser = MultiPartParser(request.META, BytesIO(request.body), request.upload_handlers, request.encoding)
|
||||
# posdict = parser.parse()
|
||||
# print(posdict)
|
||||
# tid = int(posdict[0]['tid'])
|
||||
# print(tid)
|
||||
# try:
|
||||
# info = Teacher.objects.filter(tid=tid).get().to_dict()
|
||||
# Teacher.objects.filter(tid=tid).delete()
|
||||
# response = ResponseUtil.ok(info, "老师信息删除成功")
|
||||
# return JsonResponse(response)
|
||||
# except:
|
||||
# response = ResponseUtil.error("删除失败,未找到老师信息!")
|
||||
# return JsonResponse(response)
|
||||
parser = MultiPartParser(request.META, BytesIO(request.body), request.upload_handlers, request.encoding)
|
||||
posdict = parser.parse()
|
||||
# print(posdict)
|
||||
tids = posdict[0]['tids']
|
||||
# print(tids)
|
||||
tids = literal_eval(tids)
|
||||
# print(tids)
|
||||
try:
|
||||
info = Teacher.objects.filter(tid__in=tids).values()
|
||||
data = list(info)
|
||||
if len(data) > 0:
|
||||
Teacher.objects.filter(tid__in=tids).delete()
|
||||
response = ResponseUtil.ok(data, "老师信息删除成功")
|
||||
return JsonResponse(response)
|
||||
else:
|
||||
response = ResponseUtil.error("老师未找到")
|
||||
return JsonResponse(response)
|
||||
except:
|
||||
response = ResponseUtil.ok("未查询到老师信息,删除失败")
|
||||
return JsonResponse(response)
|
||||
elif request.method == 'PUT':
|
||||
put = MultiPartParser(request.META, request, request.upload_handlers, request.encoding).parse()
|
||||
# request.PUT = put[0]
|
||||
print(put)
|
||||
tid = put[0]['tid']
|
||||
name = put[0]['name']
|
||||
sex = put[0]['sex']
|
||||
title = put[0]['title']
|
||||
education = put[0]['education']
|
||||
dept = put[0]['dept']
|
||||
if name and sex and title and education and dept:
|
||||
Teacher.objects.filter(tid=tid).update(name=name,sex=sex,title=title)
|
||||
Teacher.objects.filter(tid=tid).update(education=education,dept=dept)
|
||||
data = Teacher.objects.filter(tid=tid)[0].to_dict()
|
||||
response = ResponseUtil.ok(data, "修改老师信息成功!")
|
||||
return JsonResponse(response)
|
||||
else:
|
||||
response = ResponseUtil.error("修改信息有误!")
|
||||
return JsonResponse(response)
|
||||
|
||||
@csrf_exempt
|
||||
def course_selection(request): # 选课管理
|
||||
if request.method == 'POST':
|
||||
# 假设需要将 tid 为 1 的老师赋值给某个课程的 tid 字段
|
||||
teacher_id = request.POST.get('tid')
|
||||
name = request.POST.get('name')
|
||||
type = request.POST.get('type')
|
||||
credit = request.POST.get('credit')
|
||||
if name and type and credit:
|
||||
try:
|
||||
teacher_id = int(teacher_id)
|
||||
course = Course()
|
||||
course.name = name
|
||||
course.type = type
|
||||
course.credit = int(credit)
|
||||
course.tid = Teacher.objects.get(tid=teacher_id) # 将 Teacher 对象赋给 Course.tid 字段
|
||||
course.save()
|
||||
response = ResponseUtil.ok(course.tid_dict(), "课程信息插入成功")
|
||||
return JsonResponse(response)
|
||||
except ObjectDoesNotExist:
|
||||
response = ResponseUtil.error("找不到 id 为 " + str(teacher_id)+" 的老师")
|
||||
return JsonResponse(response)
|
||||
except ValueError:
|
||||
response = ResponseUtil.error("插入数据失败: tid_id 列不能为 null")
|
||||
return JsonResponse(response)
|
||||
if request.method == 'GET':
|
||||
cid = request.GET.get('cid')
|
||||
name = request.GET.get('name')
|
||||
type = request.GET.get('type')
|
||||
credit = request.GET.get('credit')
|
||||
tid = request.GET.get('tid')
|
||||
# 定义空查询条件
|
||||
conditions = Q()
|
||||
if cid:
|
||||
conditions &= Q(cid=int(cid))
|
||||
if name:
|
||||
conditions &= Q(name=name)
|
||||
if type:
|
||||
conditions &= Q(type=type)
|
||||
if credit:
|
||||
conditions &= Q(credit=credit)
|
||||
if tid:
|
||||
tid = int(tid)
|
||||
conditions &= Q(tid=tid)
|
||||
# 添加非空查询条件至基本查询集
|
||||
query = Course.objects.filter(conditions)
|
||||
data = query.values() # 将 QuerySet 对象转换为字典列表
|
||||
data = list(data) # 转换为列表以便序列化为 JSON
|
||||
print(query)
|
||||
response = ResponseUtil.ok(data, "课程信息查询成功")
|
||||
return JsonResponse(response)
|
||||
if request.method == 'DELETE':
|
||||
parser = MultiPartParser(request.META, BytesIO(request.body), request.upload_handlers, request.encoding)
|
||||
posdict = parser.parse()
|
||||
cids = posdict[0]['cids']
|
||||
cids = literal_eval(cids)
|
||||
print(cids)
|
||||
try:
|
||||
info = Course.objects.filter(cid__in=cids).values()
|
||||
data = list(info)
|
||||
if len(data)>0:
|
||||
Course.objects.filter(cid__in=cids).delete()
|
||||
response = ResponseUtil.ok(data, "课程信息删除成功")
|
||||
return JsonResponse(response)
|
||||
else:
|
||||
response = ResponseUtil.error("课程未找到")
|
||||
return JsonResponse(response)
|
||||
except:
|
||||
response = ResponseUtil.ok("未查询到课程,删除失败")
|
||||
return JsonResponse(response)
|
||||
if request.method == 'PUT':
|
||||
put = MultiPartParser(request.META, request, request.upload_handlers, request.encoding).parse()
|
||||
# request.PUT = put[0]
|
||||
print(put)
|
||||
cid = put[0]['cid']
|
||||
name = put[0]['name']
|
||||
type = put[0]['type']
|
||||
credit = put[0]['credit']
|
||||
tid = put[0]['tid']
|
||||
if cid and name and type and credit and tid:
|
||||
Course.objects.filter(cid=cid).update(name=name, type=type, credit=credit)
|
||||
Course.objects.filter(cid=cid).update(tid=Teacher.objects.get(tid=tid))
|
||||
data = Course.objects.filter(cid=cid)[0].tid_dict()
|
||||
response = ResponseUtil.ok(data, "课程信息修改成功")
|
||||
return JsonResponse(response)
|
||||
else:
|
||||
response = ResponseUtil.error("课程信息修改失败,信息不全")
|
||||
return JsonResponse(response)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,41 @@
|
||||
# Generated by Django 3.2.13 on 2023-09-08 11:57
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('Student', '0002_auto_20230907_0916'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='student',
|
||||
name='class_name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='student',
|
||||
name='grade',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='student',
|
||||
name='major',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='student',
|
||||
name='name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='student',
|
||||
name='password',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='student',
|
||||
name='sex',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='student',
|
||||
name='username',
|
||||
),
|
||||
]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue