【Flask开发】嘿马文学web完整flask项目第1篇:简介【附代码文档】
教程总体简介:2. 目标 1.1产品与开发 1.2环境配置 1.3 运行方式 1.4目录说明 1.5数据库设计 2.用户认证 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.项目目录实现 3.数据库迁移: 1.JWT:json web token 2.jwt工具的封装 4.用户权限校验 5.登录验证装饰器 1.书架列表 2.书架管理 3.最后阅读 2.分类书籍列表 3.热门搜索 7.3小说-详情 2.小说目录 2.阅读偏好 3.阅读设置
完整笔记资料代码:https://gitee.com/yinuo112/Backend/tree/master/Flask/嘿马文学web完整flask项目/note.md
感兴趣的小伙伴可以自取哦~
全套教程部分目录:
部分文件图片:
简介
1. 内容
- 项目介绍
- 用户登录--授权
- 用户认证
- 书架管理
- 分类管理
- 搜索管理
- 热门推荐
- 小说目录
- 阅读记录
- 阅读配置
- 项目部署
- 补充
2. 目标
- 以黑马文学产品为案例,以具体业务实现为主
- 深入理解并巩固前面所学的知识
1.1产品与开发
1-1 产品介绍
-
黑马文学是传智播客开发的专注于电子书阅读的客户端。本着帮助用户“多看书、多交朋友”的宗旨,以不断满足用户需求、为不同用户提供更好的中文阅读产品,给广大消费者提供更好的阅读体验。
-
移动web端,项目主要模块有用户模块、书籍模块、后台管理模块,具体有用户管理、书籍管理、系统管理等。参照了目前最流行的jwt认证方式,并结合试下热门的小程序开发,实现了所有接口获取用户信息,部分接口强制登录这样的整套的认证方案。
-
借鉴了qq阅读的书库分类,只留下了核心的男女频道。同时,在分类的页面中加入了我们自己特色的分类书籍推荐。
-
参考了阅读软件中书架中的那种简洁,增加了一个随机推荐书籍。每次搜索的数据,都跟普通的搜索不同。除了返回精准的数据之外,还加入了高匹配和推荐的内容。相当于给智能推荐提前留了一个坑,以便后续增加AI推荐。
-
功能方面,除了提供字体设置、亮度设置。我们另加了一个夜间设置,这样非常方面用户晚上看书的场景。
1-2 原型图
- 产品原型图
产品经理制作,是产品的原型设计,表达产品的功能组成
产品原型图的查看,需要安装Axure RP的Chrome浏览器扩展,方式如下:
1、使用Chrome浏览器「扩展程序」页面,打开「开发者模式」
2、点击「加载已解压的扩展程序」,并选择「Axure_RP_Extension_for_Chrome_0.6.3」目录
3、选择已安装扩展的「详细信息」
4、打开「允许访问文件网址」
安装后,打开原型图目录中的index.html文件即可。
原型图包含:
-
产品原型图
-
书架
- 分类
- 搜索
- 我的
- 通用
1-3 技术架构
项目采用前后端分离模式。
1.2环境配置
1-1 系统环境
-
使用Linux(ubuntu16)或Mac系统
-
Python3 + Flask0.11
-
MySQL (5.7.20)
-
Redis(3.2.1)
1-2 虚拟环境和依赖文件
1、新建虚拟环境
|
|
2、进入虚拟环境
|
|
3、安装依赖文件
|
|
1-3 项目启动运行需要用到的扩展包
|
|
Flask-SQLAlchemy连接数据库配置:
|
|
连接Redis数据库配置:
|
|
1.3 运行方式
- 项目启动文件manage.py,如果直接运行,会有如下提示信息。
-
可以有两种方式解决:
-
第一种:直接在终端启动时加入参数runserver,即python manage.py runserver。
- 第二种:编辑Pycharm的manage.py文件的配置信息,具体见如下4步。
1、编辑manage.py文件的配置信息
2、添加参数runserver
3、运行项目
4、访问测试,成功。
1.4目录说明
1-1 项目目录
1-2 具体说明
|
|
1-3 项目目录搭建
Flask官方文档对项目的目录实现也没有具体要求,开发人员可以根据自己的需求灵活实现。黑马文学的项目目录,也只是一种实现方式,具体实现步骤:
- 在pycharm中新建hmwx_backend项目
- 在pycharm中选择创建的虚拟环境python解释器
- 创建项目启动文件manage.py,实现Flask的基本程序
- 在manage.py文件中,实现项目的基本配置,数据库、脚本管理器、迁移等
- 配置文件、蓝图、工厂函数
- 把代码进行拆分
- 后续根据具体的功能,新创建文件或文件夹
产品效果
- 移动web
[
