4.0 用户推荐指数
计算机
类型
可以朗读
语音朗读
189千字
字数
2022-07-01
发行日期
展开全部
主编推荐语
本书围绕Flask框架,详细地讲解了使用Flask开发网站的各项技术要点。
内容简介
全书共11章。
首先讲解了Flask项目开发中的环境搭建、项目配置、URL与视图、Jinja2模板、数据库、表单、Flask进阶、缓存系统等。
然后拓展了知识面,在项目实战中分别介绍了RESTfulAPI、邮箱验证码、Redis缓存、Celery异步任务、登录授权机制、角色权限管理、富文本编辑器、头像管理、文件上传以及Nginx、Gunicorn部署等技术要点;在WebSocket实战中讲解了Flask中使用WebSocket开发项目的全部过程。
最后讲解了Flask异步编程。
目录
- 版权信息
- 内容简介
- 作者简介
- 序 Foreword
- 前言 Preface
- 创作背景
- 目标读者
- 内容提要
- 读者服务
- 勘误和支持
- 致谢
- chapter 1 第1章 Flask前奏
- 1.1 Flask简介
- 1.2 环境搭建
- 1.2.1 Python环境
- 注意
- 1.2.2 Flask版本
- 1.2.3 开发软件
- 注意
- 注意
- chapter 2 第2章 项目配置
- 2.1 Debug模式、Host、Port配置
- 2.1.1 Debug模式
- 1. 在PyCharm Professional版中开启Debug模式
- 2. 在非PyCharm Professional版中开启Debug模式
- 2.1.2 设置Host和Port
- 1. PyCharm Professional版修改Host和Port
- 2. 非PyCharm Professional版修改Host和Port
- 2.2 在app.config中添加配置
- 2.2.1 使用app.config配置
- 2.2.2 使用Python配置文件
- chapter 3 第3章 URL与视图
- 注意
- 3.1 定义URL
- 3.1.1 定义无参数的URL
- 注意
- 3.1.2 定义有参数的URL
- 3.2 HTTP请求方法
- 3.3 页面重定向
- 3.4 构造URL
- chapter 4 第4章 Jinja2模板
- 4.1 模板的基本使用
- 4.1.1 渲染模板
- 注意
- 4.1.2 渲染变量
- 4.2 过滤器和测试器
- 4.2.1 自定义过滤器
- 4.2.2 Jinja2内置过滤器
- 4.2.3 测试器
- 4.3 控制语句
- 4.3.1 if判断语句
- 注意
- 4.3.2 for循环语句
- 4.4 模板结构
- 4.4.1 宏和import语句
- 4.4.2 模板继承
- 4.4.3 引入模板
- 4.5 模板环境
- 4.5.1 模板上下文
- 1. 自定义变量
- 2. Jinja2内置全局上下文变量
- 3. 上下文处理器
- 4.5.2 全局函数
- 1. 内置全局函数
- 2. 自定义全局函数
- 4.5.3 Flask模板环境
- 1. 设置autoescape
- 2. 添加过滤器
- 3. 添加全局对象
- 4. 添加测试器
- 4.6 其他
- 4.6.1 转义
- 4.6.2 加载静态文件
- 4.6.3 闪现消息
- chapter 5 第5章 数据库
- 5.1 准备工作
- 5.1.1 MySQL软件
- 5.1.2 Python操作MySQL驱动
- 5.1.3 Flask-SQLAlchemy
- 5.2 Flask-SQLAlchemy的基本使用
- 5.2.1 连接MySQL
- 5.2.2 ORM模型
- 5.2.3 CRUD操作
- 1. Create操作
- 2. Read操作
- 3. update操作
- 4. delete操作
- 5.3 表关系
- 5.3.1 外键
- 5.3.2 一对多关系
- 1. 建立关系
- 2. 建立双向关系
- 3. 简化关系定义
- 5.3.3 一对一关系
- 5.3.4 多对多关系
- 5.3.5 级联操作
- 1. save-update
- 2. delete
- 3. delete-orphan
- 4. merge
- 5. expunge
- 6. all
- 7. 默认值
- 5.4 ORM模型迁移
- 5.4.1 创建迁移对象
- 5.4.2 初始化迁移环境
- 5.4.3 生成迁移脚本
- 5.4.4 执行迁移脚本
- chapter 6 第6章 表单
- 6.1 表单验证
- 6.1.1 表单类编写
- 注意
- 6.1.2 视图函数中使用表单
- 注意
- 6.1.3 自定义验证字段
- 6.2 渲染表单模板
- 注意
- 6.3 CSRF攻击
- 1. 防御CSRF攻击原理
- 2. Flask-WTF防御CSRF攻击
- chapter 7 第7章 Flask进阶
- 7.1 类视图
- 7.1.1 基本使用
- 7.1.2 方法限制
- 7.1.3 基于方法的类视图
- 7.1.4 添加装饰器
- 7.2 蓝图
- 7.2.1 基本使用
- 7.2.2 寻找模板
- 7.2.3 寻找静态文件
- 7.3 cookie和session
- 7.3.1 关于cookie和session的介绍
- 1. cookie
- 2. session
- 7.3.2 Flask中使用cookie和session
- 1. Flask中操作cookie
- 2. Flask中操作session
- 7.4 request对象
- 7.5 Flask信号机制
- 7.5.1 自定义信号
- 7.5.2 Flask内置信号
- 1. flask. template_rendered
- 2. flask. request_started
- 3. flask. request_finished
- 4. flask. got_request_exception
- 5. flask. request_tearing_down
- 7.6 常用钩子函数
- 1. before_first_request
- 2. before_request
- 3. teardown_appcontext
- 4. context_processor
- 5. errorhandler
- 7.7 上下文
- 7.7.1 线程隔离对象
- 7.7.2 LocalStack类
- 7.7.3 LocalProxy类
- chapter 8 第8章 缓存系统
- 8.1 Memcached
- 8.1.1 安装Memcached
- 1. Windows系统
- 2. Linux系统(Ubuntu)
- 8.1.2 telnet操作Memcached
- 1. set命令
- 2. add命令
- 3. get命令
- 4. delete命令
- 5. flush_all命令
- 6. stats命令
- 8.1.3 Python操作Memcached
- 1. 建立连接
- 2. 设置数据
- 3. 获取数据
- 4. 删除数据
- 5. 自增长
- 6. 自减少
- 8.1.4 Memcached的安全性
- 8.2 Redis
- 8.2.1 Redis使用场景
- 8.2.2 Redis和Memcached比较
- 8.2.3 Redis在Ubuntu中的安装与使用
- 1. 在Windows系统上安装和使用Redis
- 2. 在Linux系统上安装Redis
- 8.2.4 Redis操作命令
- 1. 添加数据
- 2. 删除数据
- 3. 设置过期时间
- 4. 查看过期时间
- 5. 查看所有key
- 6. 列表操作
- 7. 集合操作
- 8. 哈希(hash)操作
- 9. 事务操作
- 10. 发布/订阅操作
- 8.2.5 同步数据到硬盘
- 1. RDB策略
- 2. AOF策略
- 8.2.6 设置密码
- 8.2.7 Python操作Redis
- 1. 连接Redis
- 2. 字符串操作
- 3. 列表操作
- 4. 集合操作
- 5. 哈希操作
- 6. 事务操作
- chapter 9 第9章 项目实战
- 9.1 创建项目
- 注意
- 注意
- 1. pymysql
- 2. Flask-SQLAlchemy
- 3. cryptography
- 4. Flask-Migrate
- 9.1.1 config.py文件
- 9.1.2 exts.py文件
- 9.1.3 blueprints模块
- 9.1.4 models模块
- 9.2 创建用户相关模型
- 9.2.1 创建权限和角色模型
- 9.2.2 创建权限和角色
- 9.2.3 创建用户模型
- 9.2.4 创建测试用户
- 9.2.5 创建管理员
- 9.3 注册
- 9.3.1 渲染注册模板
- 9.3.2 使用Flask-Mail发送邮箱验证码
- 1. 安装Flask-Mail
- 2. 配置邮箱参数
- 3. 发送邮件
- 9.3.3 使用Flask-Caching和Redis缓存验证码
- 9.3.4 使用Celery发送邮件
- 9.3.5 RESTful API
- 9.3.6 CSRF保护
- 9.3.7 使用AJAX获取邮箱验证码
- 9.3.8 实现注册功能
- 9.4 登录
- 9.5 发布帖子
- 9.5.1 添加帖子相关模型
- 9.5.2 初始化板块数据
- 9.5.3 渲染发布帖子模板
- 9.5.4 使用wangEditor富文本编辑器
- 注意
- 1. 引入wangEditor. js文件
- 2. 添加生成编辑器的占位标签
- 3. 初始化编辑器
- 4. 设置图片上传URL
- 9.5.5 未登录限制
- 9.5.6 服务端实现发帖功能
- 9.5.7 使用AJAX发布帖子
- 9.6 首页
- 9.6.1 生成帖子测试数据
- 注意
- 9.6.2 使用Flask-Paginate实现分页
- 9.6.3 过滤帖子
- 9.7 帖子详情
- 9.7.1 动态加载帖子详情数据
- 9.7.2 发布评论
- 9.8 个人中心
- 9.8.1 使用Flask-Avatars生成随机头像
- 1. Gravatar
- 2. Robohash
- 3. 社交网站头像
- 4. 默认头像
- 5. Identicon哈希头像
- 9.8.2 修改导航条上的登录状态
- 9.8.3 根据用户显示个人中心
- 9.8.4 修改用户信息
- 9.9 CMS管理系统
- 9.9.1 CMS入口
- 9.9.2 权限管理
- 9.9.3 员工管理页面
- 9.9.4 添加员工
- 9.9.5 编辑员工
- 9.9.6 管理前台用户
- 9.9.7 帖子管理
- 9.9.8 评论管理
- 9.9.9 板块管理
- 9.10 错误处理
- 9.11 日志
- 9.11.1 loggers模块
- 9.11.2 handlers模块
- 注意
- 9.11.3 filters模块
- 9.11.4 formatters模块
- 9.12 部署
- 9.12.1 导出依赖包
- 9.12.2 使用Git上传代码
- 1. 初始化仓库
- 2. 添加远程仓库地址
- 3. 添加所有代码到缓存区
- 4. 将代码提交到本地仓库
- 5. 将本地仓库代码推送到Github远程仓库
- 注意
- 9.12.3 生产环境的配置
- 9.12.4 安装常用软件
- 1. 安装OpenSSH
- 2. 安装Vim
- 3. 安装MySQL
- 4. 安装Redis
- 5. 安装Python3
- 6. 安装Git
- 9.12.5 配置网站
- 1. 创建新用户
- 2. 使用Git拉取代码
- 3. 安装Python依赖包
- 4. 创建数据库
- 5. 同步ORM模型到数据库中
- 6. 创建初始数据
- 7. 运行Celery
- 9.12.6 使用Gunicorn部署网站
- 9.12.7 使用Nginx部署网站
- 9.12.8 压力测试
- chapter 10 第10章 WebSocket实战
- 10.1 安装相应的包
- 10.2 创建SocketIO对象
- 10.3 实现登录
- 10.4 连接和取消连接
- 10.5 获取在线用户
- 10.6 实现单聊
- 10.7 实现群聊
- 10.8 部署项目
- chapter 11 第11章 Flask异步编程
- 11.1 asyncio标准库
- 注意
- 1. 事件循环
- 2. 协程
- 3. Task(任务)对象
- 4. Future对象
- 11.2 aiohttp库
- 11.3 异步版Flask安装与异步编程性能
- 11.3.1 安装异步版Flask
- 11.3.2 Flask异步编程性能
- 11.3.3 实战——异步发送HTTP请求
- 11.3.4 使用异步SQLAlchemy
- 注意
- 注意
- 11.3.5 Jinja2开启异步支持
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。