【Flask开发】嘿马文学web完整flask项目第1篇:简介【附代码文档】

66 阅读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.阅读设置

完整笔记资料代码:gitee.com/yinuo112/Ba…

感兴趣的小伙伴可以自取哦~


全套教程部分目录:


部分文件图片:

简介

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、新建虚拟环境

  
  
# 创建虚拟环境名称为wenxue_py3
  
  
mkvirtualenv -p python3 wenxue_py3

2、进入虚拟环境

workon wenxue_py3

3、安装依赖文件

  
  
# 项目代码目录下的requirements.txt
  
  
pip install -r requirements.txt
1-3 项目启动运行需要用到的扩展包
  
  
# 数据库迁移扩展,配合Flask-Script实现数据库迁移
  
  
Flask-Migrate==1.4.0
  
  
# 脚本命令扩展,用来启动项目
  
  
Flask-Script==2.0.5
  
  
# 数据库ORM扩展,用来创建数据库表,增删改查数据
  
  
Flask-SQLAlchemy==2.3.2

Flask-SQLAlchemy连接数据库配置:

  
  
# 配置数据库的连接信息,主机、端口、数据库名称
  
  
SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@localhost/hmwx'
  
  
# 动态追踪修改信息,不设置会提示警告信息,设置True或False都可以关闭警告信息。
  
  
SQLALCHEMY_TRACK_MODIFICATIONS = False

连接Redis数据库配置:

REDIS_SETTINGS = {
        'HOST': '127.0.0.1',
        'PORT': 6379,
        'DB':0,
}

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 具体说明
hmwx-backend
├── applet_app                          # 存放项目的接口代码
│   ├── __init__.py                    # 项目的核心初始化文件,创建程序实例、数据库初始化等
│   ├── book.py                        # 书籍模块,书籍内容、阅读记录、章节列表
│   ├── category.py                    # 书籍分类模块,创建蓝图、接口代码
│   ├── my.py                        # 浏览记录
│   ├── mybooks.py                    # 我的书架,书架列表、添加删除、最后阅读
│   ├── reader_config.py            # 阅读器设置
│   ├── recommend.py                # 热门推荐
│   ├── search.py                    # 搜索书籍、模糊匹配、精准查找
│   ├── user.py                        # 用户登录、第三方登录
├── conf                        # 项目部署相关的配置信息
│   ├── supervisor_api.conf    # 进程管理工具配置
│   ├── uwsgi_applet.ini        # uwsgi服务器部署配置
│   ├── uwsgi_applet_local.ini    # uwsgi服务器本地运行配置
├── lib                            # 项目资源库
│   ├── decorators.py            # 登录校验装饰器
│   ├── flask_logging.py        # 发送邮件
│   ├── jwt_utils.py            # jwt的生成和校验
│   ├── pic_captcha.py            # 图片验证码
│   ├── redis_utils.py            # redis操作数据的工具
│   ├── sina.py                    # 用来爬取书籍的工具
│   ├── utils.py                    # 工具文件,获取ip、上传图片、密码加密
│   ├── wxauth.py                    # 授权登录
│   └── WXBizDataCrypt.py        # 
├── log                # 日志文件
├── migrations                # 迁移仓库,数据库迁移脚本记录