Django 學生管理系統(3)(課程資訊增刪改查)
阿新 • • 發佈:2019-02-04
一、建立課程表
當然首先要建立一個course app
- mysql
create table course(
id int not null auto-increment,
c_name varchar(30) not null,
c_desc varchar(100) default null,
primary key(id)
)
- migrate
class Course(models.Model):
c_name = models.CharField(max_length=30) # 課程名
c_desc = models.CharField(max_length=100 ) # 新增描述
class Meta:
db_table = 'course'
- 資料遷移
二、課程表資訊新增
def add_course(request):
if request.method == 'GET':
return render(request, 'addcourse.html')
if request.method == 'POST':
c_name = request.POST.get('name')
c_desc = request.POST.get('desc')
Course.objects.create(c_name=c_name, c_desc=c_desc)
return HttpResponseRedirect('/stu/allstu')
三、課程表刪除修改
def del_course(request, id):
"""刪除課程資訊"""
Course.objects.get(id=id).delete()
return HttpResponseRedirect('/course/allcourse')
def change_course(request, id):
"""修改選中的學生資訊"""
if request.method == 'GET':
course = Course.objects.get(id=id)
return render(request, 'changestu.html', {'course': course})
if request.method == 'POST':
course = Course.objects.get(id=id)
name = request.POST.get('name')
desc = request.POST.get('desc')
course.c_name = name
course.c_desc = desc
course.save()
return HttpResponseRedirect('/course/allcourse')
四、課程查詢
def select_course(request):
"""通過學號或者名字進行模糊查詢"""
if request.method == 'POST':
str1 = request.POST.get('str1')
page_id = request.GET.get('page_id', 1)
# 判斷是否只有數字組成,True代表為學號
if not str(str1).isdigit():
courses = Course.objects.filter(c_name__contains=str1)
else:
courses = Course.objects.filter(c_name__contains=str1)
paginator = Paginator(courses, 3)
page = paginator.page(int(page_id))
return render(request, 'selectcourse.html', {'courses': page, 'str1': str1})
管理員系統中還有一個成績資訊管理,但是要想有成績,學生肯定得先選課。所以管理員系統暫時就結束了。後面將進行的是學生選課系統。