Files
nypc_python_advanced/Web/DoubanMovieWeb
2025-12-25 03:30:11 +00:00
..
2025-12-18 10:30:30 +00:00
2025-12-24 06:13:01 +00:00
2025-12-24 06:11:18 +00:00
2025-12-24 06:11:18 +00:00

豆瓣电影数据可视化Web应用使用文档

项目概述

这是一个基于 Flask 框架开发的豆瓣电影数据可视化 Web 应用,用于展示豆瓣电影分类 Top 200 的数据信息。

项目结构

DoubanMovies/
├── app.py              # Flask 应用主文件
├── DB.py               # 数据库连接和表定义
├── douban_movies.sql   # 数据库表结构和数据
├── requirements.txt    # 依赖包列表
└── templates/
    └── index.html      # 主页面模板

技术栈

  • 后端框架: Flask
  • 数据库: MySQL
  • ORM: SQLAlchemy
  • 数据库驱动: PyMySQL
  • 前端: HTML + CSS + Jinja2 模板引擎

环境配置

依赖安装

pip install -r requirements.txt

项目所需依赖包在 requirements.txt中定义根据自己Python版本选择

  • Flask==3.1.2
  • SQLAlchemy==2.0.45
  • PyMySQL==1.1.2
  • 其他相关依赖

数据库配置

数据库连接信息

DB.py 文件中定义了数据库连接信息:

self.engine = create_engine('mysql+pymysql://用户:密码@主机:端口/数据库?charset=utf8mb4', echo=False)

数据库初始化(若是已有可以跳过该步骤)

  1. 执行douban_movies.sql文件创建数据库表并导入初始数据
  2. 确保数据库服务正常运行

代码说明

app.py

  • 定义 Flask 应用
  • / 路由:获取所有电影数据并渲染到模板

DB.py

  • DB 类:封装数据库连接和表定义
  • connect()方法:建立数据库连接
  • table() 方法:定义数据表结构

index.html

  • 使用 CSS 样式美化表格显示
  • 通过 Jinja2 模板引擎渲染电影数据
  • 代码{%for row in rows%} ...{% endfor %}作用
    • 这段代码是 Jinja2 模板引擎 的循环语法,用于在网页中动态渲染数据库中的电影数据

数据表结构

数据库包含 douban_movies 表,字段包括:

  • id: 主键,自增整数
  • m_id: 电影ID字符串
  • m_title: 电影标题
  • m_score: 电影评分
  • m_rank: 电影排名
  • m_type / m_type: 电影类型
  • m_regions: 制片国家/地区
  • m_release_date: 上映时间
  • m_actors: 演员列表
  • m_cover_url: 海报URL

功能说明

主页面

主页面(/)显示豆瓣电影数据表格,包含以下列:

  • 序号: 电影在数据库中的ID
  • 标题: 电影名称
  • 评分: 电影豆瓣评分
  • 类型: 电影类型
  • 国家/地区: 电影制片国家或地区
  • 上映时间: 电影上映日期

运行应用

  1. 启动应用:

    python app.py
    
  2. 访问应用: 打开浏览器访问 http://localhost:5000

配置说明

数据库连接

如需修改数据库连接,请在 DB.py中修改 engine 的连接字符串:

self.engine = create_engine('mysql+pymysql://用户名:密码@主机:端口/数据库名?charset=utf8mb4', echo=False)

常见问题

1. 数据库连接失败

  • 确认连接参数是否正确
  • 检查网络连接是否正常

2. 表名不匹配

  • 确保代码中的表名与数据库中的表名一致

3. 编码问题

  • 数据库连接使用 UTF-8 编码charset=utf8mb4

版权信息

本项目为教学演示用途,数据来源于豆瓣电影。