mirror of
https://gitee.com/insArvin/nypc_python_advanced.git
synced 2026-04-18 01:12:29 +08:00
146 lines
3.3 KiB
Markdown
146 lines
3.3 KiB
Markdown
# 豆瓣电影数据可视化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)
|
||
|
||
## 版权信息
|
||
|
||
本项目为教学演示用途,数据来源于豆瓣电影。 |