mirror of
https://gitee.com/insArvin/nypc_python_advanced.git
synced 2026-04-17 22:52:28 +08:00
3.3 KiB
3.3 KiB
豆瓣电影数据可视化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)
数据库初始化(若是已有可以跳过该步骤)
- 执行
douban_movies.sql文件创建数据库表并导入初始数据 - 确保数据库服务正常运行
代码说明
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
- 标题: 电影名称
- 评分: 电影豆瓣评分
- 类型: 电影类型
- 国家/地区: 电影制片国家或地区
- 上映时间: 电影上映日期
运行应用
-
启动应用:
python app.py -
访问应用: 打开浏览器访问
http://localhost:5000
配置说明
数据库连接
如需修改数据库连接,请在 DB.py中修改 engine 的连接字符串:
self.engine = create_engine('mysql+pymysql://用户名:密码@主机:端口/数据库名?charset=utf8mb4', echo=False)
常见问题
1. 数据库连接失败
- 确认连接参数是否正确
- 检查网络连接是否正常
2. 表名不匹配
- 确保代码中的表名与数据库中的表名一致
3. 编码问题
- 数据库连接使用 UTF-8 编码(charset=utf8mb4)
版权信息
本项目为教学演示用途,数据来源于豆瓣电影。