Files
nypc_python_advanced/Web/DoubanMovieWeb/readme.md
iamzhaohaibo 9b21a0bc3a update 3 files
Signed-off-by: iamzhaohaibo <941604465@qq.com>
2025-12-24 06:11:18 +00:00

146 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 豆瓣电影数据可视化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
## 版权信息
本项目为教学演示用途,数据来源于豆瓣电影。