技术选型与架构设计
后端采用 Python+Flask 框架,提供 RESTful API 接口。前端使用 Vue.js 构建单页面应用,数据库选用 MySQL 或 PostgreSQL。系统采用前后端分离架构,通过 JWT 进行身份验证。
数据库设计
核心表包括用户表、家教信息表、订单表、评价表。用户表区分学生、教师、管理员角色;家教信息表包含科目、薪资、教学经验等字段;订单表记录预约状态;评价表存储双方互评数据。
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE,
password_hash VARCHAR(128),
role ENUM('student', 'teacher', 'admin'),
profile_json TEXT
);
后端 API 开发
使用 Flask-RESTful 扩展构建 API 端点。关键接口包括用户注册登录、家教信息 CRUD、订单管理、评价系统。配置 Flask-CORS 处理跨域请求,使用 Flask-JWT-Extended 实现安全认证。
@app.route('/api/tutors', methods=['GET'])
@jwt_required()
def get_tutors():
page = request.args.get('page', 1, type=int)
per_page = 10
tutors = Tutor.query.paginate(page, per_page, False)
return jsonify([t.to_dict() for t in tutors.items])
前端功能模块
Vue 组件划分为首页浏览、搜索筛选、用户中心、订单管理、评价系统五大模块。使用 Vue Router 实现路由导航,Axios 进行 API 调用,Vuex 管理全局状态。Element UI 提供基础 UI 组件。
// 家教信息卡片组件
Vue.component('tutor-card', {
props: ['tutor'],
template: `<el-card>
<h3>{{ tutor.subject }}</h3>
<p>时薪:{{ tutor.price }}元</p>
<el-button @click="showDetail">查看详情</el-button>
</el-card>`
});


