用js设计学生管理系统
时间: 2023-11-22 14:55:26 浏览: 38
设计一个学生管理系统的基础架构,需要考虑以下几个方面:
1. 数据库设计:需要设计学生信息表,包括学生ID、姓名、性别、年龄、班级等字段,还需要设计用户表,用于存储管理员的账号和密码。
2. 前端页面设计:需要设计登录页面、学生信息列表页面、添加学生信息页面、编辑学生信息页面等页面。
3. 后端接口设计:需要设计登录接口、获取学生信息列表接口、添加学生信息接口、编辑学生信息接口等接口。
下面是一个简单的学生管理系统的设计思路:
1. 数据库设计
创建两个表,分别是"students"和"users"。students表包含学生的基本信息,users表包含管理员账号和密码。
students表的结构如下:
```sql
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`gender` varchar(10) NOT NULL,
`age` int(11) NOT NULL,
`class` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
users表的结构如下:
```sql
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. 前端页面设计
登录页面,包括用户名、密码和登录按钮。学生信息列表页面,包括表格和搜索框。添加学生信息页面,包括学生姓名、性别、年龄、班级和添加按钮。编辑学生信息页面,包括学生姓名、性别、年龄、班级和保存按钮。
3. 后端接口设计
登录接口,用于验证管理员账号和密码是否正确。获取学生信息列表接口,用于查询学生信息列表。添加学生信息接口,用于添加学生信息。编辑学生信息接口,用于编辑学生信息。
下面是一个使用Node.js和Express框架实现的简单的学生管理系统:
```javascript
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express();
// 创建数据库连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'test',
});
// 使用body-parser解析请求体
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// 登录接口
app.post('/login', (req, res) => {
const { username, password } = req.body;
pool.query('SELECT * FROM users WHERE username = ? AND password = ?', [username, password], (error, results) => {
if (error) {
console.error(error);
res.status(500).json({ message: '服务器错误' });
} else if (results.length === 0) {
res.status(401).json({ message: '用户名或密码错误' });
} else {
res.json({ message: '登录成功' });
}
});
});
// 获取学生信息列表接口
app.get('/students', (req, res) => {
// 处理查询参数
const { name, gender, class: className } = req.query;
let sql = 'SELECT * FROM students';
const values = [];
if (name) {
sql += ' WHERE name LIKE ?';
values.push(`%${name}%`);
}
if (gender) {
if (values.length > 0) {
sql += ' AND';
} else {
sql += ' WHERE';
}
sql += ' gender = ?';
values.push(gender);
}
if (className) {
if (values.length > 0) {
sql += ' AND';
} else {
sql += ' WHERE';
}
sql += ' class = ?';
values.push(className);
}
pool.query(sql, values, (error, results) => {
if (error) {
console.error(error);
res.status(500).json({ message: '服务器错误' });
} else {
res.json(results);
}
});
});
// 添加学生信息接口
app.post('/students', (req, res) => {
const { name, gender, age, class: className } = req.body;
pool.query('INSERT INTO students(name, gender, age, class) VALUES (?, ?, ?, ?)', [name, gender, age, className], (error, results) => {
if (error) {
console.error(error);
res.status(500).json({ message: '服务器错误' });
} else {
res.json({ message: '添加成功' });
}
})
});
// 编辑学生信息接口
app.put('/students/:id', (req, res) => {
const { name, gender, age, class: className } = req.body;
const id = req.params.id;
pool.query('UPDATE students SET name = ?, gender = ?, age = ?, class = ? WHERE id = ?', [name, gender, age, className, id], (error, results) => {
if (error) {
console.error(error);
res.status(500).json({ message: '服务器错误' });
} else {
res.json({ message: '更新成功' });
}
})
});
app.listen(3000, () => {
console.log('服务器已启动');
});
```
以上代码只是一个简单的示例,实际开发中还需要考虑数据校验、错误处理、安全性等方面。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)