Compare commits

...

6 Commits

Author SHA1 Message Date
c497dbb421 更新 database_manager.py 2023-12-27 18:59:29 +08:00
4527403846 更新 views.py 2023-12-27 18:59:26 +08:00
a5ffdc32e1 更新 course-info.html 2023-12-27 18:59:24 +08:00
d0d6679e5a 更新 course-category.html 2023-12-27 18:59:21 +08:00
c47b9e9450 更新 database_manager.py 2023-12-27 18:15:12 +08:00
a4c6ae3d0c 更新 mysql.sql 2023-12-27 18:15:09 +08:00
5 changed files with 116 additions and 71 deletions

View File

@@ -42,22 +42,55 @@
</ul>
</div>
</div>
<div class="layui-body">
<table id="courseTable" lay-filter="courseTableFilter"></table>
</div>
</div>
<script src="static/jquery.min.js"></script> <!-- 确保已经引入jQuery -->
<script src="static/layui.js"></script>
<script>
// 请求后端获取菜单数据
$.get('/api/menu', function (menuItems) {
var menuList = $('.layui-nav.layui-nav-tree');
menuList.empty();
$.get('/api/menu', function (menuItems) {
var menuList = $('.layui-nav.layui-nav-tree');
menuList.empty();
menuItems.forEach(function (item) {
var href = item.path || 'javascript:void(0);'; // 提供一个默认值
menuList.append('<li class="layui-nav-item"><a href="' + href + '">' + item.name + '</a></li>');
menuItems.forEach(function (item) {
var href = item.path || 'javascript:void(0);'; // 提供一个默认值
menuList.append('<li class="layui-nav-item"><a href="' + href + '">' + item.name + '</a></li>');
});
layui.element.render('nav', 'test');
});
layui.element.render('nav', 'test');
layui.use(['table', 'jquery'], function () {
var table = layui.table;
var $ = layui.jquery;
// 发起GET请求获取数据
$.get('/api/get-course-type', function (res) {
// 假设返回的res是一个对象包含必修和选修的课程名数组
console.log(res);
// 处理返回的数据,转换为表格能接受的格式
var tableData = [];
res['必修'].forEach(function (course) {
tableData.push({course_type: '必修', course_name: course});
});
res['选修'].forEach(function (course) {
tableData.push({course_type: '选修', course_name: course});
});
// 渲染表格
table.render({
elem: '#courseTable',
cols: [[ // 设置表头
{field: 'course_type', title: '课程类型', sort: true},
{field: 'course_name', title: '课程名称', sort: true}
]],
data: tableData // 使用处理后的数据
});
});
});
layui.use(['jquery'], function () {

View File

@@ -60,7 +60,7 @@
<tr>
<th>课程名称</th>
<th>课程代码</th>
<th>任课教师</th>
<th>课程类别</th>
<th>学分</th>
<th>课程描述</th>
</tr>
@@ -97,7 +97,7 @@
var row = '<tr>' +
'<td>' + course.course_name + '</td>' +
'<td>' + course.course_code + '</td>' +
'<td>' + course.instructor_name + '</td>' +
'<td>' + course.course_type + '</td>' +
'<td>' + course.credits + '</td>' +
'<td>' + course.description + '</td>' +
'</tr>';

View File

@@ -135,9 +135,25 @@ def course_info():
def get_course_info():
db_manager = DatabaseManager()
course_data = db_manager.get_all_courses()
print(course_data)
return jsonify(course_data)
@app.route('/api/get-course-type', methods=['GET'])
def get_course_type():
db_manager = DatabaseManager()
course_data = db_manager.get_course_type()
# 创建存储必修和选修课程名称的字典
course_info = {"必修": [], "选修": []}
for course in course_data:
if course['course_type'] == '必修':
course_info["必修"].append(course['course_name'])
elif course['course_type'] == '选修':
course_info["选修"].append(course['course_name'])
return jsonify(course_info)
@app.route('/attendance', methods=['GET', 'POST'])
def course_checkin():
return render_template('attendance.html')
@@ -175,6 +191,7 @@ def teacher_attendance():
from flask import request
@app.route('/api/get-teacher-attendance-table', methods=['GET'])
def get_current_teacher_courses():
phone_number = session.get('username')
@@ -205,7 +222,5 @@ def get_current_teacher_courses():
return jsonify(response)
if __name__ == '__main__':
app.run(debug=True)

View File

@@ -67,7 +67,7 @@ class DatabaseManager:
return result
def get_all_courses(self):
sql = "SELECT course_name, course_code, instructor_name, credits, description FROM courses"
sql = "SELECT course_name, course_code, course_type, credits, description FROM course"
result = self.fetch(sql)
return result
@@ -95,3 +95,8 @@ class DatabaseManager:
return courses_classes_result
return []
def get_course_type(self):
sql = "SELECT course_name, course_type FROM course"
result = self.fetch(sql)
return result

110
mysql.sql
View File

@@ -88,53 +88,10 @@ CREATE TABLE attendance_records
student_id INT NOT NULL,
date DATE NOT NULL,
status ENUM('present', 'absent', 'late', 'excused'),
FOREIGN KEY (course_id) REFERENCES courses (course_id),
FOREIGN KEY (course_id) REFERENCES course (course_id),
FOREIGN KEY (student_id) REFERENCES students (student_id)
);
CREATE TABLE class_course
(
class_course_id INT AUTO_INCREMENT PRIMARY KEY,
class_id INT NOT NULL,
course_id INT NOT NULL,
FOREIGN KEY (class_id) REFERENCES class (class_id),
FOREIGN KEY (course_id) REFERENCES course (course_id)
);
INSERT INTO class_course(class_id, course_id)
VALUES (1, 1),
(1, 2),
(1, 3),
(1, 4),
(1, 5),
(1, 6),
(1, 7),
(1, 8),
(2, 1),
(2, 2),
(2, 3),
(2, 6),
(2, 10),
(2, 16),
(2, 13),
(2, 26),
(3, 30),
(3, 29),
(3, 28),
(3, 27),
(3, 25),
(3, 24),
(3, 4),
(3, 13),
(4, 11),
(4, 12),
(4, 14),
(4, 16),
(4, 15),
(4, 20),
(4, 7),
(4, 26);
CREATE TABLE class
(
@@ -155,7 +112,7 @@ CREATE TABLE students
student_number VARCHAR(20) NOT NULL,
student_name VARCHAR(255) NOT NULL,
class_id INT,
FOREIGN KEY (class_id) REFERENCES classes (class_id)
FOREIGN KEY (class_id) REFERENCES class (class_id)
);
INSERT INTO student (student_name, student_number, class_id)
@@ -216,29 +173,61 @@ VALUES ('教师1', 1),
CREATE TABLE teacher_class_course
(
id INT AUTO_INCREMENT,
teacher_id INT,
class_course_id INT,
id INT AUTO_INCREMENT,
teacher_id INT,
course_id INT,
class_id INT,
PRIMARY KEY (id),
FOREIGN KEY (teacher_id) REFERENCES teachers (teacher_id),
FOREIGN KEY (class_course_id) REFERENCES class_courses (class_course_id)
FOREIGN KEY (teacher_id) REFERENCES teacher (teacher_id),
FOREIGN KEY (course_id) REFERENCES course (course_id),
FOREIGN KEY (class_id) REFERENCES class (class_id)
);
INSERT INTO teacher_class_course(teacher_id, course_id, class_id)
VALUES (1, 1, 1),
(1, 2, 1),
(1, 1, 3),
(1, 1, 4),
(2, 2, 1),
(2, 2, 2),
(2, 2, 3),
(2, 2, 4),
(3, 2, 1),
(3, 2, 2),
(3, 2, 3),
(3, 2, 4);
CREATE TABLE schedules
CREATE TABLE schedule
(
schedule_id INT AUTO_INCREMENT,
day_of_week INT,
period_id INT,
class_course_id INT,
teacher_id INT,
schedule_id INT AUTO_INCREMENT,
day_of_week INT,
period_id INT,
teacher_id INT,
class_id INT,
course_id INT,
PRIMARY KEY (schedule_id),
FOREIGN KEY (period_id) REFERENCES course_periods (period_id),
FOREIGN KEY (class_course_id) REFERENCES class_courses (class_course_id),
FOREIGN KEY (teacher_id) REFERENCES teachers (teacher_id)
FOREIGN KEY (period_id) REFERENCES time_period (period_id),
FOREIGN KEY (teacher_id) REFERENCES teacher (teacher_id),
FOREIGN KEY (class_id) REFERENCES class (class_id),
FOREIGN KEY (course_id) REFERENCES course (course_id)
);
INSERT INTO schedule (day_of_week, period_id, teacher_id, class_id, course_id) VALUES
(1,1,1,1,1),
(1,2,1,2,1),
(2,3,1,1,3),
(2,4,1,1,4),
(3,1,1,1,2),
(3,4,1,1,1),
(4,2,1,2,1),
(4,3,1,1,1),
(5,1,1,1,3),
(5,3,1,1,1);
CREATE TABLE time_period
(
period_id INT AUTO_INCREMENT,
@@ -253,3 +242,6 @@ VALUES ('一、二节', '08:00:00', '09:30:00'),
('三、四节', '10:00:00', '11:30:00'),
('五、六节', '14:30:00', '16:00:00'),
('七、八节', '16:30:00', '18:00:00');