寒假第二十五天
Day 4: 完善逻辑与系统优化
目标:增加数据验证、日志记录和批量操作功能。
任务与进展:
-
数据验证:
-
检查评分范围(0-10)、标题非空等。
-
-
日志记录:
-
使用
logging模块记录增删改查操作和错误信息。
-
-
批量导入:
-
支持从CSV文件批量新增数据。
-
-
API封装:
-
使用
Flask编写简单接口供前端调用。
-
代码片段:
from flask import Flask, request
import logging
logging.basicConfig(filename="movie_crud.log", level=logging.INFO)
app = Flask(__name__)
@app.route("/movies", methods=["POST"])
def add_movie():
data = request.json
if not data.get("title"):
return {"error": "标题不能为空"}, 400
try:
insert_movie(data["title"], float(data["rating"]), data["director"], data["description"])
logging.info(f"新增电影:{data['title']}")
return {"message": "添加成功"}, 201
except Exception as e:
logging.error(f"添加失败:{str(e)}")
return {"error": "服务器内部错误"}, 500
问题与解决:
-
并发冲突:通过数据库事务隔离级别(
READ_COMMITTED)避免脏读。 -
性能瓶颈:为高频查询字段(如
director)添加索引。
总结
通过4天实践,完成了从数据爬取到增删改查的全流程开发:
-
数据获取:爬虫技术 + 反爬策略。
-
数据管理:Pandas清洗 + MySQL存储。
-
功能实现:CRUD操作 + 参数化查询。
-
系统健壮性:数据验证、日志记录、API封装。
后续改进方向:
-
增加用户权限管理(如JWT鉴权)。
-
使用分布式数据库(如HBase)提升大数据量下的性能。
-
结合可视化工具(如Tableau)展示数据分析结果。

浙公网安备 33010602011771号