亲爱的小伙伴们,Flask实战课程的学习已经结束了!相信大家也都跟着老师完成了课程中代码实践部分。为了进一步巩固编程能力,我们在Flask商品管理项目实战基础上重新整合相关信息以实现商品管理的基本功能,接下来让我们动手来完成下图所示的程序开发吧!
题目要求:
根据上课的视频内容,结合前端框架Bootstrap,Flask相关扩展(Flask-CKEditor,Flask-Login),请大家动手实现该项目的一个Demo版本,主要功能是实现商品列表(包括分页、按名称查询)、商品新增及修改、商品详情、用户登录和退出等核心功能。
项目结构图:
运行效果图:
一、语言和环境
1、实现语言:Python语言
2、 版本:Python3.6或Python3.6以上版本
3、环境要求及开发工具:Pycharm
二、 程序整体要求
1、 划分功能模块,根据题目要求设置不同的文件结构,在其中实现相应功能的管理
2、 类、方法、变量的标识需清楚易懂,代码结构要层次分明、整洁,代码编辑思路要清晰
3、 要求Python代码书写、命名符合规范,在代码中添加必要的注释
4、 程序运行效果与提供的页面效果图、结构保持一致
5、 将作业项目形成压缩文件并提交(包括导出的sql文件)
三、思路分析
1、知识储备
(1) 前端开发框架
(2) Flask web开发框架(包括模板、ORM、表单)
(3) Flask-Login扩展
https://flask-login.readthedocs.io/en/latest/
(4) Flask- CKEditor扩展
https://flask-ckeditor.readthedocs.io/en/latest/
2、项目结构及功能分析
(1) 项目入口文件app.py
功能描述:
1. 从配置文件加载flask配置
2. 配置SQLAlchemy
3. 配置CKeditor
4. 蓝图模块注册配置
5. 登录验证配置
6. 文件上传配置
(2) 配置文件conf.py
功能描述:
1. 数据库连接URI配置
2. SECRET_KEY配置
3. 文件上传目录配置
4. CKeditor上传调用函数配置
(3) 常量配置文件constants.py:包含商品类型和商品状态的配置
(4) 表单forms.py:
用户登录表单:包括用户名、密码等输入验证
商品添加及修改表单:包括表单类的编写、添加bootstrap样式类、表单验证
(5) ORM模型文件models.py:设计商品、标签、分类及他们之间的关系ORM模型
(6) 公共静态文件目录/static:Jquery文件、bootstrap文件、自定义的样式文件
(7) 公共模板目录/templates
1. 首页index.html
2. base.html抽象出来的模板
3. sidebar.html公共左侧菜单
4. top.html公共的页面头部
5. field_error.html 表单验证时出现错误的宏内容
(8) 文件上传目录/medias
(9) 用户账户模块
项目结构:
1. /templates目录包含该模块的页面
2. views.py 该模块的视图函数
功能描述:
1. 用户登录:用户输入用户名、密码后进行登录,结合flask-login实现
2. 用户退出
3. 展示当前登录的用户:在所有页面的顶部展示当前登录用户的昵称
(10) 商品管理模块
项目结构:
1. /templates目录包含该模块的页面
2. views.py 该模块的视图函数
功能清单:
1. 左侧菜单:商品列表、商品新增入口
2. 登录验证:商品模块所有功能都需要登录验证
结合flask-login实现登录才能访问,如果未登录,则跳转到登录界面,登录后自动跳回商品列表
3. 商品列表:支持分页查询,按商品名称查询、商品删除功能、商品修改/详情入口,点击后跳转到对应的页面
4. 商品详情页面
5. 商品新增/修改页面:结合flask-ckeditor实现商品详情内容的富文本编辑,富文本支持上传图片,不知非图片的文件上传,上传后自动插入到富文本内容显示
注意:
1. 项目提交时请导出数据库中SQL(包括测试数据),存储为flask_mall.sql,一并提交
2. 项目的组织结构请参考文件中的项目结构图
一、项目规范【10分】
1、项目结构划分明确、清晰
2、核心方法、功能添加适当注释
二、程序整体运行效果【20分】
项目正常运行,界面及功能与要求一致,基本功能全部实现
三、框架掌握【25分】
1、考察对flask项目的掌握情况。
2、包括模板的使用、ORM的使用、表单的使用、视图函数的使用
三、项目配置【10分】
1、考察使用flask开发大型项目的结构调整
2、配置抽离到文件、flask蓝图的使用
四、登录退出【15分】
1、考察对flask登录的使用
2、使用flask-login扩展,实现登录、退出及访问权限控制
五、商品管理【20分】
1、考察对flask中ORM查询、分页的使用
2、使用flask-ekeditor扩展实现副文本编辑
作业素材仅供学习与参考,请按要求完成作业