Compare commits
9 Commits
7e8cbf5aaa
...
5f9559ae19
| Author | SHA1 | Date |
|---|---|---|
|
|
5f9559ae19 | |
|
|
ef1f726fc6 | |
|
|
a55b7efd20 | |
|
|
b7fac7ca42 | |
|
|
5f4be0635c | |
|
|
2193e20ca8 | |
|
|
0668a1e4d0 | |
|
|
b6d7d17a36 | |
|
|
94a4d94bd1 |
|
|
@ -2,7 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<title>课程签到</title>
|
<title>公告信息</title>
|
||||||
<meta name="renderer" content="webkit"/>
|
<meta name="renderer" content="webkit"/>
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>课程签到</title>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link href="static/css/layui.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="layui-layout layui-layout-admin">
|
||||||
|
<div class="layui-header">
|
||||||
|
<div class="layui-logo layui-hide-xs layui-bg-black">网上上课点名系统</div>
|
||||||
|
<!-- 头部区域(可配合layui 已有的水平导航) -->
|
||||||
|
<ul class="layui-nav layui-layout-left">
|
||||||
|
<!-- 移动端显示 -->
|
||||||
|
<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
|
||||||
|
<i class="layui-icon layui-icon-spread-left"></i>
|
||||||
|
</li>
|
||||||
|
<li class="layui-nav-item layui-hide-xs"><a href="/attendance-teacher/attendance">签到</a></li>
|
||||||
|
<li class="layui-nav-item layui-hide-xs"><a href="/attendance-teacher/import-class">导入班级</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="layui-nav layui-layout-right">
|
||||||
|
<li class="layui-nav-item layui-hide layui-show-sm-inline-block">
|
||||||
|
<a href="javascript:;">
|
||||||
|
<img
|
||||||
|
src="//unpkg.com/outeres@0.0.10/img/layui/icon-v2.png"
|
||||||
|
class="layui-nav-img"
|
||||||
|
/>
|
||||||
|
{{ session.nickname }}
|
||||||
|
</a>
|
||||||
|
<dl class="layui-nav-child">
|
||||||
|
<dd><a href="/home/profile">资料</a></dd> <!-- 修改这里的href指向/profile -->
|
||||||
|
<dd><a href="javascript:;" id="logoutLink">登出</a></dd>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="layui-nav-item"
|
||||||
|
lay-header-event="menuRight"
|
||||||
|
lay-unselect
|
||||||
|
></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="layui-side layui-bg-black">
|
||||||
|
<div class="layui-side-scroll">
|
||||||
|
<!-- 动态加载菜单栏 -->
|
||||||
|
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</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();
|
||||||
|
|
||||||
|
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.use(['jquery'], function () {
|
||||||
|
var $ = layui.jquery; // 获取Layui的jQuery对象
|
||||||
|
|
||||||
|
$('#logoutLink').on('click', function () {
|
||||||
|
// 向后端发送登出请求
|
||||||
|
$.get('/logout', function (data) {
|
||||||
|
// 重定向到登录页面,或根据后端响应做其他处理
|
||||||
|
window.location.href = '/login';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<title>签到</title>
|
<title>课程签到</title>
|
||||||
<meta name="renderer" content="webkit"/>
|
<meta name="renderer" content="webkit"/>
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<link href="static/css/layui.css" rel="stylesheet"/>
|
<link href="static/css/layui.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>课程类别</title>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link href="static/css/layui.css" rel="stylesheet"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="layui-layout layui-layout-admin">
|
||||||
|
<div class="layui-header">
|
||||||
|
<div class="layui-logo layui-hide-xs layui-bg-black">网上上课点名系统</div>
|
||||||
|
<!-- 头部区域(可配合layui 已有的水平导航) -->
|
||||||
|
<ul class="layui-nav layui-layout-right">
|
||||||
|
<li class="layui-nav-item layui-hide layui-show-sm-inline-block">
|
||||||
|
<a href="javascript:;">
|
||||||
|
<img
|
||||||
|
src="//unpkg.com/outeres@0.0.10/img/layui/icon-v2.png"
|
||||||
|
class="layui-nav-img"
|
||||||
|
/>
|
||||||
|
{{ session.nickname }}
|
||||||
|
</a>
|
||||||
|
<dl class="layui-nav-child">
|
||||||
|
<dd><a href="/home/profile">资料</a></dd> <!-- 修改这里的href指向/profile -->
|
||||||
|
<dd><a href="javascript:;" id="logoutLink">登出</a></dd>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="layui-nav-item"
|
||||||
|
lay-header-event="menuRight"
|
||||||
|
lay-unselect
|
||||||
|
></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="layui-side layui-bg-black">
|
||||||
|
<div class="layui-side-scroll">
|
||||||
|
<!-- 动态加载菜单栏 -->
|
||||||
|
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</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();
|
||||||
|
|
||||||
|
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.use(['jquery'], function () {
|
||||||
|
var $ = layui.jquery; // 获取Layui的jQuery对象
|
||||||
|
|
||||||
|
$('#logoutLink').on('click', function () {
|
||||||
|
// 向后端发送登出请求
|
||||||
|
$.get('/logout', function (data) {
|
||||||
|
// 重定向到登录页面,或根据后端响应做其他处理
|
||||||
|
window.location.href = '/login';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -42,6 +42,36 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-body">
|
||||||
|
<!-- 内容主体区域 -->
|
||||||
|
<div style="padding: 15px;">
|
||||||
|
<blockquote class="layui-elem-quote layui-text">
|
||||||
|
课程信息
|
||||||
|
</blockquote>
|
||||||
|
<table class="layui-table">
|
||||||
|
<colgroup>
|
||||||
|
<col width="150">
|
||||||
|
<col width="150">
|
||||||
|
<col width="150">
|
||||||
|
<col width="100">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>课程名称</th>
|
||||||
|
<th>课程代码</th>
|
||||||
|
<th>任课教师</th>
|
||||||
|
<th>学分</th>
|
||||||
|
<th>课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<!-- 动态生成的课程信息将填充在这里 -->
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="static/jquery.min.js"></script> <!-- 确保已经引入jQuery -->
|
<script src="static/jquery.min.js"></script> <!-- 确保已经引入jQuery -->
|
||||||
|
|
@ -60,6 +90,21 @@
|
||||||
layui.element.render('nav', 'test');
|
layui.element.render('nav', 'test');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$.get('/api/get-course-info', function (courses) {
|
||||||
|
var tbody = $('.layui-table tbody');
|
||||||
|
tbody.empty(); // 清空表格现有内容
|
||||||
|
courses.forEach(function (course) {
|
||||||
|
var row = '<tr>' +
|
||||||
|
'<td>' + course.course_name + '</td>' +
|
||||||
|
'<td>' + course.course_code + '</td>' +
|
||||||
|
'<td>' + course.instructor_name + '</td>' +
|
||||||
|
'<td>' + course.credits + '</td>' +
|
||||||
|
'<td>' + course.description + '</td>' +
|
||||||
|
'</tr>';
|
||||||
|
tbody.append(row); // 将新行添加到表格中
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
layui.use(['jquery'], function () {
|
layui.use(['jquery'], function () {
|
||||||
var $ = layui.jquery; // 获取Layui的jQuery对象
|
var $ = layui.jquery; // 获取Layui的jQuery对象
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,101 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>课程签到</title>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link href="static/css/layui.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="layui-layout layui-layout-admin">
|
||||||
|
<div class="layui-header">
|
||||||
|
<div class="layui-logo layui-hide-xs layui-bg-black">网上上课点名系统</div>
|
||||||
|
<!-- 头部区域(可配合layui 已有的水平导航) -->
|
||||||
|
<ul class="layui-nav layui-layout-left">
|
||||||
|
<!-- 移动端显示 -->
|
||||||
|
<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
|
||||||
|
<i class="layui-icon layui-icon-spread-left"></i>
|
||||||
|
</li>
|
||||||
|
<li class="layui-nav-item layui-hide-xs"><a href="/attendance-teacher/attendance">签到</a></li>
|
||||||
|
<li class="layui-nav-item layui-hide-xs"><a href="/attendance-teacher/import-class">导入班级</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="layui-nav layui-layout-right">
|
||||||
|
<li class="layui-nav-item layui-hide layui-show-sm-inline-block">
|
||||||
|
<a href="javascript:;">
|
||||||
|
<img
|
||||||
|
src="//unpkg.com/outeres@0.0.10/img/layui/icon-v2.png"
|
||||||
|
class="layui-nav-img"
|
||||||
|
/>
|
||||||
|
{{ session.nickname }}
|
||||||
|
</a>
|
||||||
|
<dl class="layui-nav-child">
|
||||||
|
<dd><a href="/home/profile">资料</a></dd> <!-- 修改这里的href指向/profile -->
|
||||||
|
<dd><a href="javascript:;" id="logoutLink">登出</a></dd>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="layui-nav-item"
|
||||||
|
lay-header-event="menuRight"
|
||||||
|
lay-unselect
|
||||||
|
></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="layui-side layui-bg-black">
|
||||||
|
<div class="layui-side-scroll">
|
||||||
|
<!-- 动态加载菜单栏 -->
|
||||||
|
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-body">
|
||||||
|
<!-- 内容主体区域 -->
|
||||||
|
<div style="padding: 15px;">
|
||||||
|
<blockquote class="layui-elem-quote layui-text">
|
||||||
|
Layui 框体布局内容主体区域
|
||||||
|
</blockquote>
|
||||||
|
<div class="layui-card layui-panel">
|
||||||
|
<div class="layui-card-header">
|
||||||
|
下面是充数内容,为的是出现滚动条
|
||||||
|
</div>
|
||||||
|
<div class="layui-card-body">
|
||||||
|
充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>你还真滑到了底部呀
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
</div>
|
||||||
|
</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();
|
||||||
|
|
||||||
|
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.use(['jquery'], function () {
|
||||||
|
var $ = layui.jquery; // 获取Layui的jQuery对象
|
||||||
|
|
||||||
|
$('#logoutLink').on('click', function () {
|
||||||
|
// 向后端发送登出请求
|
||||||
|
$.get('/logout', function (data) {
|
||||||
|
// 重定向到登录页面,或根据后端响应做其他处理
|
||||||
|
window.location.href = '/login';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
19
app/views.py
19
app/views.py
|
|
@ -127,8 +127,16 @@ def profile():
|
||||||
|
|
||||||
@app.route('/course-info', methods=['GET', 'POST'])
|
@app.route('/course-info', methods=['GET', 'POST'])
|
||||||
def course_info():
|
def course_info():
|
||||||
|
if request.method == "GET":
|
||||||
return render_template('course-info.html')
|
return render_template('course-info.html')
|
||||||
|
|
||||||
|
@app.route('/api/get-course-info', methods=['GET'])
|
||||||
|
def get_course_info():
|
||||||
|
db_manager = DatabaseManager()
|
||||||
|
course_data = db_manager.get_all_courses()
|
||||||
|
return jsonify(course_data)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/attendance', methods=['GET', 'POST'])
|
@app.route('/attendance', methods=['GET', 'POST'])
|
||||||
def course_checkin():
|
def course_checkin():
|
||||||
return render_template('attendance.html')
|
return render_template('attendance.html')
|
||||||
|
|
@ -137,9 +145,20 @@ def course_checkin():
|
||||||
def announcement():
|
def announcement():
|
||||||
return render_template('announcement.html')
|
return render_template('announcement.html')
|
||||||
|
|
||||||
|
@app.route('/attendance-teacher', methods=['GET', 'POST'])
|
||||||
|
def announcement_teacher():
|
||||||
|
return render_template('attendance-teacher.html')
|
||||||
@app.route('/attendance-reminder', methods=['GET', 'POST'])
|
@app.route('/attendance-reminder', methods=['GET', 'POST'])
|
||||||
def attendance_reminder():
|
def attendance_reminder():
|
||||||
return render_template('attendance-reminder.html')
|
return render_template('attendance-reminder.html')
|
||||||
|
|
||||||
|
@app.route('/course-category', methods=['GET', 'POST'])
|
||||||
|
def course_category():
|
||||||
|
return render_template('course-category.html')
|
||||||
|
|
||||||
|
@app.route('/attendance-teacher/import-class', methods=['GET'])
|
||||||
|
def import_class():
|
||||||
|
return render_template('import-class.html')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(debug=True)
|
app.run(debug=True)
|
||||||
|
|
|
||||||
|
|
@ -66,3 +66,8 @@ class DatabaseManager:
|
||||||
sql = "SELECT menu_name,path FROM menu_items WHERE role=%s ORDER BY `order`"
|
sql = "SELECT menu_name,path FROM menu_items WHERE role=%s ORDER BY `order`"
|
||||||
result = self.fetch(sql, (role,))
|
result = self.fetch(sql, (role,))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def get_all_courses(self):
|
||||||
|
sql = "SELECT course_name, course_code, instructor_name, credits, description FROM courses"
|
||||||
|
result = self.fetch(sql)
|
||||||
|
return result
|
||||||
|
|
|
||||||
75
mysql.sql
75
mysql.sql
|
|
@ -35,3 +35,78 @@ INSERT INTO menu_items (menu_name, role, path, `order`) VALUES
|
||||||
('签到提醒', 'teacher', '/attendance-reminder', 4);
|
('签到提醒', 'teacher', '/attendance-reminder', 4);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE courses (
|
||||||
|
course_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
course_name VARCHAR(255) NOT NULL,
|
||||||
|
course_code VARCHAR(50) NOT NULL,
|
||||||
|
instructor_name VARCHAR(255) NOT NULL,
|
||||||
|
credits INT,
|
||||||
|
description TEXT,
|
||||||
|
attendance_info TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO courses (course_name, course_code, instructor_name, credits, description, attendance_info) VALUES
|
||||||
|
('高级数学', 'MTH101', 'John Doe', 4, '高级数学是一门研究数学理论的课程,包括微积分、线性代数等', 'JSON或其他格式的签到数据'),
|
||||||
|
('物理学', 'PHY101', 'Jane Smith', 3, '物理学是自然科学的一部分,涉及物质和能量的性质和现象', 'JSON或其他格式的签到数据'),
|
||||||
|
('化学', 'CHEM101', 'Emily Davis', 4, '化学是研究物质的组成、结构、性质和变化规律的科学', 'JSON或其他格式的签到数据'),
|
||||||
|
('英语', 'ENG101', 'Mark Wilson', 3, '英语课程旨在提高学生的语言技能,包括阅读、写作、听力和口语', 'JSON或其他格式的签到数据'),
|
||||||
|
('生物学', 'BIO101', 'David Johnson', 3, '生物学是自然科学的一部分,研究生命和生物体', 'JSON或其他格式的签到数据'),
|
||||||
|
('计算机科学', 'CS101', 'Alice Brown', 4, '计算机科学是研究信息和计算机系统的理论基础', 'JSON或其他格式的签到数据'),
|
||||||
|
('心理学', 'PSY101', 'Chris Green', 3, '心理学是科学研究心理和行为的科学', 'JSON或其他格式的签到数据'),
|
||||||
|
('历史', 'HIS101', 'Paula Adams', 2, '历史课程涵盖了世界历史的主要事件、人物和发展', 'JSON或其他格式的签到数据'),
|
||||||
|
('艺术', 'ART101', 'Laura White', 2, '艺术课程探索各种艺术形式和表达方式', 'JSON或其他格式的签到数据'),
|
||||||
|
('经济学', 'ECO101', 'Peter Parker', 3, '经济学是研究生产、分配和消费资源的社会科学', 'JSON或其他格式的签到数据');
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE attendance_records (
|
||||||
|
record_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
course_id INT NOT NULL,
|
||||||
|
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 (student_id) REFERENCES students(student_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE class_courses (
|
||||||
|
class_course_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
class_id INT NOT NULL,
|
||||||
|
course_id INT NOT NULL,
|
||||||
|
FOREIGN KEY (class_id) REFERENCES classes(class_id),
|
||||||
|
FOREIGN KEY (course_id) REFERENCES courses(course_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE classes (
|
||||||
|
class_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
class_name VARCHAR(255) NOT NULL,
|
||||||
|
major VARCHAR(255)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE students (
|
||||||
|
student_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
student_number VARCHAR(20) NOT NULL,
|
||||||
|
student_name VARCHAR(255) NOT NULL,
|
||||||
|
class_id INT,
|
||||||
|
FOREIGN KEY (class_id) REFERENCES classes(class_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('王伟',202300001000, 8);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('李娜',202300001001, 6);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('张伟', 202300001002, 5);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('刘洋', 202300001003, 8);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('陈敏', 202300001004, 7);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('杨静', 202300001005, 1);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('赵媛媛',202300001006, 4);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('黄进', 202300001007, 6);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('周杰',202300001008, 2);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('吴琳',202300001009, 1);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('徐涛',202300001010, 5);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('孙怡', 202300001011, 3);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('朱元璋',202300001012, 2);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('马云', 202300001013, 4);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('胡雪', 202300001014, 7);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('郭敬明', 202300001015, 9);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('林芳', 202300001016, 6);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('段誉', 202300001017, 4);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('曹操', 202300001018, 2);
|
||||||
|
INSERT INTO students (student_name, student_number,class_id) VALUES ('刘备', 202300001019, 2);
|
||||||
Reference in New Issue