Compare commits

..

No commits in common. "af9fd8af11dcf9159057a4ea534410b1c45dd31a" and "5fb451fa9707e5a8de44f64ea1785ab6861a2907" have entirely different histories.

8 changed files with 27 additions and 48 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -58,7 +58,8 @@
<th>课程名称</th>
<th>课程代码</th>
<th>学分</th>
<th>班级专业</th>
<th>班级名称</th>
<th>专业</th>
<th>签到</th>
</tr>
</thead>
@ -92,11 +93,13 @@
$row.append(`<td>${item.course_name}</td>`);
$row.append(`<td>${item.course_code}</td>`);
$row.append(`<td>${item.credits}</td>`);
$row.append(`<td>${item.class_name + item.major}</td>`);
$row.append(`<td><div class="layui-btn-container">
<button type="button" class="layui-btn">签到</button>
</div>
</td>`)
$row.append(`<td>${item.class_name}</td>`);
$row.append(`<td>${item.major}</td>`);
$row.append(`<td>
<div class="btn-container">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="checkin">签到<i class="layui-icon layui-icon-down"></i></a>
</div>
</td>`)
$tbody.append($row);
});
@ -115,6 +118,11 @@
});
}
function toggleDropdown(dropdown) {
$(dropdown).find('.dropdown-menu').toggle(); // 显示或隐藏下拉菜单
}
// 初始加载第一页
renderTable(1);
});

View File

@ -70,7 +70,7 @@
<div class="layui-col-md12" style="padding-top: 20px;">
<button type="button" class="layui-btn" id="uploadExcel">上传Excel文件</button>
<!-- 可以添加一个下载模板的链接 -->
<a href="/files/template.xlsx" class="layui-btn layui-btn-primary">下载模板</a>
<a href="path/to/your/template.xlsx" class="layui-btn layui-btn-primary">下载模板</a>
</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
from flask import Flask, redirect, url_for, render_template, session, jsonify,request,send_file
from flask import Flask, redirect, url_for, render_template, session, jsonify,request
from db.connection import MySQLPool
from config import SECRET_KEY
from db.database_manager import DatabaseManager
@ -7,15 +7,14 @@ from models.Teacher import Teacher
from models.User import User
import logging
from config import LOGGING_CONFIG
from config import FILE_PATH
app = Flask(__name__, static_folder='static')
app.secret_key = SECRET_KEY # 从配置文件设置
logging.basicConfig(**LOGGING_CONFIG)
# 一个全局MySQLPool对象用于管理数据库连接
mysql_pool = MySQLPool()
# 配置文件路径,例如指向一个 'files' 目录
app.config['FILE_PATH'] = FILE_PATH
@app.route('/')
def index():
@ -225,6 +224,7 @@ def teacher_attendance():
@app.route('/api/get-teacher-attendance-table', methods=['GET'])
def get_current_teacher_courses():
number = session.get('number')
logging.info(number)
# 获取分页参数
page = request.args.get('page', 1, type=int) # 如果没有提供,默认为第一页
limit = request.args.get('limit', 10, type=int) # 如果没有提供默认每页10条
@ -232,7 +232,7 @@ def get_current_teacher_courses():
# 获取所有课程数据
db_manager = DatabaseManager()
all_course_data = db_manager.get_current_teacher_courses(number)
logging.info(f"all_course_data: {all_course_data}")
# 计算分页的起始和结束索引
start = (page - 1) * limit
end = start + limit
@ -250,12 +250,6 @@ def get_current_teacher_courses():
# 将查询结果转换为JSON格式并返回
return jsonify(response)
@app.route('/files/<filename>')
def download_template():
print(FILE_PATH)
# 确保这个路径是你的文件实际所在的服务器路径
path = "./files/template.xlsx"
return send_file(path, as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)

View File

@ -1,7 +1,6 @@
# config.py
import pymysql
import logging
import os
# 设置session SECRET_KEY
SECRET_KEY = 'sUNiJ7QPulxrbmZD'
@ -10,8 +9,6 @@ LOGGING_CONFIG = {
'level': logging.INFO,
'format': '%(asctime)s - %(levelname)s - [%(filename)s:%(funcName)s] - %(message)s'
}
# 配置文件下载路径
FILE_PATH = os.path.join(os.getcwd(), 'files')
# 数据库连接配置
DB_CONFIG = {

View File

@ -71,28 +71,9 @@ class DatabaseManager:
result = self.fetch(sql)
return result
def get_current_teacher_courses(self, teacher_number):
# 使用INNER JOIN连接teacher_class_course表和course表
sql = """
SELECT
c.course_name,
c.course_code,
c.credits,
tcc.class_name,
m.major
FROM
teacher_class_course tcc
JOIN
course c ON tcc.course_id = c.course_id
JOIN
major m ON tcc.major_id = m.major_id
WHERE
tcc.teacher_number = %s;
"""
# 执行查询并返回结果
result = self.fetch(sql, (teacher_number,))
return result
def get_current_teacher_courses(self, number):
sql = ""
return None
def get_course_type(self):
sql = "SELECT course_name, course_type FROM course"

Binary file not shown.

View File

@ -181,15 +181,13 @@ CREATE TABLE teacher_class_course
teacher_number VARCHAR(20) NOT NULL,
course_id INT NOT NULL,
class_name VARCHAR(20) NOT NULL,
major_id VARCHAR(20) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (teacher_number) REFERENCES teacher (teacher_number),
FOREIGN KEY (course_id) REFERENCES course (course_id),
FOREIGN KEY (major_id) REFERENCES major (major_id)
FOREIGN KEY (course_id) REFERENCES course (course_id)
);
INSERT INTO teacher_class_course(teacher_number, course_id, class_name,major_id) VALUES
('G0000',1,'2023级01班','000');
INSERT INTO teacher_class_course(teacher_number, course_id, class_name) VALUES
('G0000',1,'2023级01班');
INSERT INTO teacher_class_course(teacher_id, course_id, class_id)
VALUES (1, 1, 1),
@ -251,3 +249,4 @@ VALUES ('一、二节', '08:00:00', '09:30:00'),
('五、六节', '14:30:00', '16:00:00'),
('七、八节', '16:30:00', '18:00:00');