# 豆瓣电影数据可视化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 模板引擎 ## 环境配置 ### 依赖安装 ```bash pip install -r requirements.txt ``` 项目所需依赖包在 `requirements.txt`中定义(根据自己Python版本选择): - Flask==3.1.2 - SQLAlchemy==2.0.45 - PyMySQL==1.1.2 - 其他相关依赖 ### 数据库配置 #### 数据库连接信息 在 `DB.py` 文件中定义了数据库连接信息: ```python 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. 启动应用: ```bash python app.py ``` 2. 访问应用: 打开浏览器访问 `http://localhost:5000` ## 配置说明 ### 数据库连接 如需修改数据库连接,请在 `DB.py`中修改 `engine` 的连接字符串: ```python self.engine = create_engine('mysql+pymysql://用户名:密码@主机:端口/数据库名?charset=utf8mb4', echo=False) ``` ## 常见问题 ### 1. 数据库连接失败 - 确认连接参数是否正确 - 检查网络连接是否正常 ### 2. 表名不匹配 - 确保代码中的表名与数据库中的表名一致 ### 3. 编码问题 - 数据库连接使用 UTF-8 编码(charset=utf8mb4) ## 版权信息 本项目为教学演示用途,数据来源于豆瓣电影。