系统架构设计
采用 Flask 作为后端框架,结合 SQLAlchemy 进行数据管理,前端使用 Bootstrap 或 Vue.js 实现交互界面。系统分为用户模块、推荐算法模块、数据管理模块三大核心部分。
数据库设计使用 SQLite 或 MySQL,包含用户表、景点表、酒店表、评分表等,通过模型定义数据结构。
开发环境配置
PyCharm 中创建 Flask 项目,安装依赖库:flask, flask-sqlalchemy, pandas。通过 virtualenv 创建虚拟环境隔离依赖。
配置数据库连接参数,使用 flask-migrate 管理数据库迁移。
核心功能实现
用户模块
实现注册、登录、个人中心功能,使用 flask-login 管理用户会话。密码加密采用 werkzeug.security 的 generate_password_hash。
数据爬取与处理
通过 requests 和 BeautifulSoup 爬取公开旅游数据(如携程、TripAdvisor),清洗后存入数据库。示例代码:
@app.route('/scrape')
def scrape_data():
response = requests.get('https://example.com/hotels')
soup = BeautifulSoup(response.text, 'html.parser')
hotels = soup.select('.hotel-list')
for hotel in hotels:
name = hotel.select('.name')[0].text
db.session.add(Hotel(name=name))
db.session.commit()
推荐算法
基于协同过滤或内容相似度算法,使用 surprise 库实现评分预测。关键公式:
Prediction(u,i) = r̄u + Σ(v∈N(u)) wuv(rvi - r̄v) / Σ(v∈N(u)) wuv
前后端交互
通过 Flask 的 @app.route 定义 API 接口,前端使用 Ajax 或 Fetch 请求数据。返回 JSON 格式:
{"hotels":[{"name":"Hotel A","score":4.5}


