寒假第二十五天

Day 4: 完善逻辑与系统优化

目标:增加数据验证、日志记录和批量操作功能。

任务与进展

  1. 数据验证

    • 检查评分范围(0-10)、标题非空等。

  2. 日志记录

    • 使用logging模块记录增删改查操作和错误信息。

  3. 批量导入

    • 支持从CSV文件批量新增数据。

  4. API封装

    • 使用Flask编写简单接口供前端调用。

代码片段

python
复制
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天实践,完成了从数据爬取到增删改查的全流程开发:

  1. 数据获取:爬虫技术 + 反爬策略。

  2. 数据管理:Pandas清洗 + MySQL存储。

  3. 功能实现:CRUD操作 + 参数化查询。

  4. 系统健壮性:数据验证、日志记录、API封装。

后续改进方向

  • 增加用户权限管理(如JWT鉴权)。

  • 使用分布式数据库(如HBase)提升大数据量下的性能。

  • 结合可视化工具(如Tableau)展示数据分析结果。

posted @ 2025-02-14 14:36  努力不掉发  阅读(12)  评论(0)    收藏  举报