【Flask开发】嘿马文学web完整flask项目第8篇:1.同类热门推荐,2.小说目录【附代码文档】

34 阅读1分钟

🏆🏆🏆教程全知识点简介:1. 内容 2. 目标 1.1产品与开发 1.2环境配置 1.3 运行方式 1.4目录说明 2.用户认证 2.1微某信平台 Json Web Token(JWT) 定义路由,书架管理--添加书籍 3.书架 4.1分类列表 5.搜索 5.3搜索-精准&高匹配&推荐 6.小说 6.4推荐-同类热门推荐 7.浏览记录 8.1配置-阅读偏好 8.配置 9.1项目部署uWSGI 配置 启动 9.部署 10.1异常和日志 10.补充 10.2 flask-restful 1.项目目录实现 2.数据库的设计 3.数据库迁移: 1.JWT:json web token 2.jwt工具的封装 4.用户权限校验 5.登录验证装饰器 1.书架列表 2.书架管理 3.最后阅读 2.分类书籍列表 3.热门搜索 7.3小说-详情 2.小说目录 2.阅读偏好 3.阅读设置


📚📚仓库code.zip 👉直接-->:   gitee.com/yinuo112/Ba…    🍅🍅

✨ 本教程项目亮点

🧠 知识体系完整:覆盖从基础原理、核心方法到高阶应用的全流程内容
💻 全技术链覆盖:完整前后端技术栈,涵盖开发必备技能
🚀 从零到实战:适合 0 基础入门到提升,循序渐进掌握核心能力
📚 丰富文档与代码示例:涵盖多种场景,可运行、可复用
🛠 工作与学习双参考:不仅适合系统化学习,更可作为日常开发中的查阅手册
🧩 模块化知识结构:按知识点分章节,便于快速定位和复习
📈 长期可用的技术积累:不止一次学习,而是能伴随工作与项目长期参考


🎯🎯🎯全教程总章节


🚀🚀🚀本篇主要内容

1.同类热门推荐

  • 接口设计:

    • 请求地址:'/recommend/hots/category_id'
    • 请求方法:GET
    • 请求参数:
    参数名称				是否必须				参数位置				参数说明
    category_id			True					url路径参数			书籍分类id
    
    • 返回结果:书籍的基本信息
  • 实现步骤:

    • 1.定义路由,接收url路径参数,作为视图函数的参数
    • 2.根据参数分类id,查询数据库、获取大分类数据
    • 3.判断如果有大分类数据
    • 4.获取该大分类下面的二级分类数据,
    • 5.根据分类,查询书籍表,获取对应分类的书籍数据,默认查询4条
    • 6.保存书籍的基本信息
    • 7.转成json格式返回
    • 8.如果没有大分类数据,默认返回4条数据。

2.小说目录

  • 在applet_app目录下,新建book.py文件

  • 接口设计:

    • 请求地址:'/book/chapters/book_id'
    • 请求方法:GET
    • 请求参数:
    参数名					参数类型				是否必须				参数位置				参数说明
    book_id					int						True				url路径参数				书籍id
    page						int						True				查询字符串				页数,默认1
    pagesize				int						True				查询字符串				每页数据的条目数
    

Matplotlib 文档

order int True 查询字符串 排序条件,0表示升序,1降序


* 返回结果:章节目录信息,分类信息


[Flask 模板指南](https://flask.palletsprojects.com/en/3.0.x/templating/)

* 实现步骤:
* 1.获取查询字符串参数,page/pagesize/order
* 2.根据书籍id参数,查询书籍表
* 3.查询书籍章节目录表,按照书籍id进行过滤查询
* 4.根据order参数的排序条件,如果1倒序排序,如果0升序排序
* 5.对排序的结果,进行分页处理
* 6.遍历分页的数据,获取章节信息
* 7.转成json格式,返回数据

### 3.小说阅读

* 接口设计:

* 请求地址:'/book/reader/book_id'
* 请求方法:GET
* 请求参数:

~~~python
参数名						是否必须					参数类型						参数说明
book_id						True						int							url路径参数,书籍id
chapter_id				False						int							章节id,如果不传,默认按照用户阅读进度展示
Content-Type			True				application/json		请求头中指定数据格式
  • 返回数据:小说书名、具体的章节id、章节内容;

python-decouple 文档

  • 实现步骤:
    • 1.根据书籍id,查询书籍表,确认书籍的存在
    • 2.获取查询字符串参数章节id,校验参数
    • 3.根据章节id,查询书籍章节表
    • 4.判断查询结果
    • 5.如果数据存在,查询书籍内容表
    • 6.如果用户登录,查询用户阅读进度表;
    • 7.返回数据

4.小说详情

  • 实现步骤:
    • 1.根据书籍id,查询数据书籍表
    • 2.判断,如果用户登录,查询用户的浏览记录
    • 3.判断查询结果,保存浏览记录
    • 4.如果用户未登录,根据书籍id查询书籍章节表,默认倒序排序。
    • 5.返回结果

1.我的浏览记录

  • 接口设计:

    • 请求地址:'/my/histories'
    • 请求方法:GET
    • 请求参数:
    参数名				是否必须				参数类型				参数说明
    page					True					int					 查询字符串,页数
    pagesize			True					int					 查询字符串,每页的条目数
    
    
    • 返回数据:分页后的浏览数据,书籍名称、作者、封面图片、日期
  • 实现步骤:

    • 1.新建my.py文件,用来实现关于浏览记录的功能代码;
    • 2.创建蓝图、定义蓝图、注册蓝图
    • 3.导入登录验证装饰器
    • 4.获取参数,page和pagesize

Sanic 文档

  • 5.查询数据库浏览记录表,根据用户id查询,分页处理
  • 6.获取分页后的数据
  • 7.转成json,返回数据

2.阅读偏好

  • 接口设计:

    • 请求地址:'/config/preference'
    • 请求方法:POST
    • 请求参数:
    参数名					是否必须			参数类型			参数说明
    gender					True			string			请求体,用户性别
    
    
    • 返回结果:设置成功
  • 实现步骤:

    • 1.获取参数,post请求体中json数据
    • 2.校验参数,性别的范围
    • 3.查询数据库,用户表,获取用户信息
    • 4.保存数据、提交数据
    • 5.返回结果

3.阅读设置

json 文档

  • 接口设计:

    • 请求路径:‘/config/reader’
    • 请求方法:POST
    • 请求参数:application/json
    参数名					是否必须			参数类型			参数说明
    brightness			True				int				亮度10-100
    font_size				True				string		字号大小
    background			True				string		内置背景颜色
    turn						True				string		T1表示仿真、T2表示平滑、T3表示默认设置
    
    
    • 返回数据:返回设置成功。
  • 实现步骤:

    • 1.获取参数、亮度、字号、背景、翻页效果
    • 2.查询数据库,用户表,根据用户id查询用户信息
    • 3.保存设置信息,提交数据
    • 4.返回结果

🚀✨ (未完待续)项目系列下一章

📚下一篇 将进入更精彩的环节! 🔔 记得收藏 & 关注,第一时间获取更新! 🍅 一起见证整个系列逐步成型的全过程。