【新书推荐】Web3.0应用开发实战(从Web 2.0到Web 3.0)

第一部分 Flask简介

 第1章 安装

 1.1 创建应用目录

 1.2 虚拟环境

 1.2.1 创建虚拟环境

 1.2.2 使用虚拟环境

 1.3 使用pip安装Python包

 1.4 使用pipregs输出包

 1.5 使用requirements.txt

 1.6 使用pipenv管理包

 第2章 应用的基本结构

 2.1 网页显示过程

 2.2 初始化

 2.3 路由和视图函数

 2.4 一个完整的应用

 2.5 Web开发服务器

 2.6 动态路由

 2.7 调试模式

 2.8 命令行选项

 2.9 请求-响应循环

 2.9.1 应用和请求上下文

 2.9.2 请求分派

 2.9.3 请求对象

 2.9.4 请求钩子

 2.9.5 响应Response

 2.9.6 对比cookie与session

 2.10 Flask扩展包

 第3章 模板

 3.1 Jinja2模板引擎

 3.1.1 渲染模板

 3.1.2 变量及占位符

 3.1.3 自定义过滤器

 3.1.4 控制结构

 3.1.5 宏及模板继承

 3.2 集成Bootstrap

 3.3 Bootstrap页面布局

 3.4 自定义错误页面

 3.5 链接

 3.6 静态文件

 3.7 使用Flask-Moment本地化日期和时间

 第4章 Web表单

 4.1 配置

 4.2 表单验证

 4.2.1 服务器端验证

 4.2.2 客户端验证

 4.3 自定义验证函数

 4.3.1 行内验证函数

 4.3.2 全局验证函数

 4.4 表单谊染

 4.5 防御CSRF攻击

 4.6 在视图函数中处理表单

 4.7 单个页面多个表单

 4.8 重定向和用户会话

 4.9 重定向到上一个页面

 4.9.1 使用HTTP referrer重定向

 4.9.2 使用查询参数next重定向

 4.10 闪现消息

 第5章 数据库

 5.1 SQL数据库

 5.2 NoSQL数据库

 5.3 使用SQL还是NoSQL

 5.4 Python数据库框架

 5.5 使用pymongo管理数据库

 5.6 数据库CRUD基本操作

 5.6.1 增

 5.6.2 删

 5.6.3 改

 5.6.4 查

 5.7 数据库查询操作符

 5.7.1 比较查询操作符

 5.7.2 逻辑查询操作符

 5.7.3 元素查询操作符

 5.7.4 评估查询操作符

 5.7.5 数组查询操作符

 5.8 数据库更新操作符

 5.8.1 字段更新操作符

 5.8.2 数组更新操作符

 5.8.3 修饰操作符

 5.9 聚合操作

 5.10 地理位置查询

 5.11 在视图函数中操作数据库

 5.12 集成Python shell

 5.13 MongoDB备份与恢复

 5.13.1 备份数据

 5.13.2 还原数据

 第6章 电子邮件

 6.1 使用Flask-Mail提供电子邮件支持

 6.2 在Python shell中发送电子邮件

 6.3 在应用中集成电子邮件发送功能

 6.4 异步发送电子邮件

 第7章 大型应用的结构

 7.1 项目结构

 7.2 配置选项

 7.3 应用包

 7.3.1 使用应用工厂函数

 7.3.2 在蓝本中实现应用功能

 7.4 应用脚本

 7.5 需求文件

 7.6 单元测试

 7.7 创建数据库

 7.8 运行应用

第二部分 实例:Web 2.0博客

 第8章 用户身份验证

 8.1 Flask的身份验证扩展

 8.2 密码安全性

 8.3 创建身份验证蓝本

 8.4 使用Flask-Login验证用户身份

 8.4.1 准备用于登录的用户模型

 8.4.2 保护路由

 8.4.3 添加登录表单

 8.4.4 用户登录

 8.4.5 用户退出

 8.4.6 理解Flask-Login的运作方式

 8.4.7 登录测试

 8.5 注册新用户

 8.5.1 添加用户注册表单

 8.5.2 处理用户注册

 8.6 确认账户

 8.6.1 使用itsdangerous生成确认令牌

 8.6.2 发送确认邮件

 8.7 管理账户

 8.8 用户角色

 第9章 用户资料

 9.1 资料信息

 9.2 用户资料页面

 9.3 资料编辑器

 9.3.1 用户级资料编辑器

 9.3.2 管理员级资料编辑器

 9.4 用户头像

 第10章 博客文章

 10.1 提交和显示博客文章

 10.2 在资料页中显示博客文章

 10.3 分页显示长博客文章列表

 10.3.1 创建虚拟博客文章数据

 10.3.2 在页面中谊染数据

 10.3.3 添加分页导航

 10.4 使用Markdown和Flask-PageDown支持富文本文章

 10.4.1 使用Flask-PageDown

 10.4.2 CKeditor富文本编辑器

 10.5 博客文章的固定链接

 10.6 博客文章编辑器

 第11章 关注者

 11.1 再论数据库关系

 11.2 在资料页面中显示关注者

 11.3 查看指定用户的关注者和被关注者

 11.4 在首页显示所关注用户的文章

 第12章 用户评论

 12.1 评论在数据库中的表示

 12.2 提交和显示评论

 12.3 管理评论

 第13章 应用接口

 13.1 REST简介

 13.1.1 资源就是一切

 13.1.2 请求方法

 13.1.3 请求和响应主体

 13.1.4 版本

 13.2 使用Flask实现REST式Web服务

 13.2.1 创建API蓝本

 13.2.2 错误处理

 13.2.3 使用Flask-HTTPAuth验证用户身份

 13.2.4 基于令牌的身份验证

 13.2.5 基于JWT的身份验证

 13.2.6 资源和JSON的序列化转换

 13.2.7 实现资源的各个端点

 13.3 使用Jupyter notebook测试Web服务

第三部分 实例:Web 3.0商城

 第14章 Web 3.0简易商城

 14.1 区块链

 14.2 Web 3.0

 14.2.1 以太坊域名(ENS)

 14.2.2 区块链存储

 14.3 MetaMask

 14.4 Web3.js

 14.5 以太坊代币计量单位

 14.6 简易商城项目结构

 14.7 页面构成

 14.7.1 路由函数

 14.7.2 视图模板

 14.8 MetaMask获取钱包余额、交易回执

 14.8.1 获取余额

 14.8.2 交易回执

第四部分 成功在望

 第15章 测试

 15.1 获取代码覆盖度报告

 15.2 Flask测试Web客户端

 15.3 值得测试吗

 15.4 性能

 第16章 部署

 16.1 部署流程

 16.2 把生产环境中的错误写入日志

 16.3 云部署

 16.3.1 安装更新开发工具及各种依赖

 16.3.2 MongoDB数据库

 16.3.3 Nginx服务器

 16.3.4 Gunicorn服务器

 16.3.5 Supervisor进程守护

 第17章 其他资源

 17.1 使用集成开发环境

 17.2 寻找Flask扩展

 17.3 寻求帮助

 17.4 参与Flask社区

参考文献

......

本书共分四部分,全面介绍如何基于Python微框架Flask进行Web开发。第一部分是Flask简介,介绍使用Flask框架及扩展开发Web程序的必*基础知识。第二部分则给出一个Web 2.0实例,真正带领大家一步步开发完整的博客和社交应用Flasky,从而将前述知识融会贯通,付诸实践。第三部分在初步了解Web 2.0建站流程的基础上,建立一个简单的Web 3.0商城。第四部分介绍了发布应用之前必须考虑的事项,如单元测试策略、性能分析技术、Flask程序的部署方式等。

本书采用Python 3.X、MongoDB软件,适合熟悉Python编程,有意通过Flask全面掌握Web开发的程序员学习参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言基础考研向】06运算符与表达式

文章目录 1.运算符分类 2.算术运算符及表达式 3.关系运算符与关系表达式 4.c语言运算级优先级表 课后习题自测 1.运算符分类 语言提供了13种类型的运算符,如下所示. (1)算术运算符( - * / %) . (2)关系运算符(>< >< l) . (3)逻辑运算符(l && ll) . (4)位…

一文了解【完全合作关系】下的【多智能体强化学习】

处于完全合作关系的多智能体的利益一致&#xff0c;获得的奖励相同&#xff0c;有共同的目标。比如多个工业机器人协同装配汽车&#xff0c;他们的目标是相同的&#xff0c;都希望把汽车装好。 在多智能体系统中&#xff0c;一个智能体未必能观测到全局状态 S。设第 i 号智能体…

c语言:用一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。

题目 用一个宏&#xff0c;可以将一个整数的二进制位的奇数位和偶数位交换。 如&#xff1a;01&#xff0c;是1&#xff0c;交换完是10&#xff0c;是2. 思路 1.分别取出奇数位上的数字和偶数位上的数字 举个例子&#xff1a;1001 0110 1001 0110 奇…

javaScript设计模式-工厂

它的好处是消除对象间的耦合度&#xff0c;在派生子类时提供了更大的灵活性。但盲目的把普通的构造函数扔在一边&#xff0c;并不值得提倡。如果要采一不可能另外换用一个类&#xff0c;或都不需要在运行期间在一系列可互换的类中进行选择&#xff0c;就不应该使用。这样在后期…

基于android的违章处理APP 前后端服务 -毕业设计

基于android的违章处理APP 该项目是基于android版本的违章处理APP&#xff0c;系统包含前端android服务和后端web服务&#xff0c;内容和技术都是目前比较流行的架构。 技术介绍 前端android端&#xff1a; jdk17 gradle8.0 android studio 采用2023版本 后端web端&#xff…

手动添加测试用例配置输入参数和期望值

1.选中函数&#xff0c;点击右键选择插入测试用例。这里所选择的插入测试用例区别于之前的测试用例的地方在于&#xff0c;这里插入测试用例是手动配置的&#xff0c;之前的是自动生成的。手动配置可以自定义选择输入参数和期望值。 2.添加测试用例后&#xff0c;点击测试用例&…

FTP文件传输与vsftpd配置

一 存储类型 直连式存储DAS 适用于那些数据量不大&#xff0c;对磁盘访问速度要求较高的中小企业 存储区域网络SAN 用来存储非结构化数据&#xff0c;虽然受限于以太网的速度&#xff0c;但是部署灵活&#xff0c;成本低 网络附加存储NAS 适用于大型应用或数据库系统&…

进程间通信之利用命名管道进行通信

文章目录 什么是命名管道命名管道的作用有什么命名管道的特点和用法是什么命名管道与匿名管道有什么区别匿名管道相较于命名管道的局限性 命名管道如何使用代码 什么是命名管道 命名管道&#xff08;Named Pipe&#xff09;&#xff0c;也被称为FIFO&#xff08;First In, Fir…

宝藏排序1

题目 冒泡排序 import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();int[] res new int[n];for(int i0;i<n;i)res[i] sc.nextInt()…

C语言——整数和浮点数在内存中的存储

目录 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1 什么是大小端&#xff1f; 2.2 为什么有大小端? 2.3 练习 2.3.1 练习1 2.3.2 练习2 三、浮点数在内存中的存储 3.1练习 3.2 浮点数的存储 3.2.1浮点数存的过程 3.2.2浮点数取的过程 3.3 题目解…

provide和inject快速上手

应用案例 代码 点击弹窗1按钮&#xff0c;弹窗2出现 父组件 provide注入数据 // 弹窗1<Event ></Event> // 弹窗2<EventEvaluation v-if"isShowEventEvaluation"></EventEvaluation>const isShowEventEvaluation falseconst isShowEvent…

数学建模-预测人口数据

目录 中国09~18年人口数据 创建时间 绘制时间序列图 使用专家建模器 得到结果 预测结果 残差的白噪声检验 中国09~18年人口数据 创建时间 路径&#xff1a;数据-> 定义日期和时间 绘制时间序列图 使用专家建模器 看看spss最终判断是那个模型最佳的契合 得到结果 预…

【2024最新-python3小白零基础入门】No4.python控制语句学习

文章目录 1 选择结构1.1 if语句 2 循环结构2.1 while循环语句2.2 for循环语句2.3 break、continue、pass在循环中的用途 对于 Python 程序中的执行语句,默认是按照书写顺序依次执行的,这时称这样的语句是顺序结构的。但是,仅有顺序结构还是不够的,因为有时需要根据特定的情况,有…

vite多页面打包学习(一)

一、前期准备 首先初始化两套独立的vue实例和相关生态&#xff08;多页面嘛&#xff09;&#xff0c;如下 我在src文件下创建了pages大文件夹&#xff0c;并初始化了两套页面分别为index和page1&#xff0c;每套页面都有自己单独的组件、路由、状态、入口等等&#xff0c;这里…

SpringMVC实现原理及详解

1、什么是 SpringMVC ? 在介绍什么是 SpringMVC 之前&#xff0c;我们先看看 Spring 的基本架构。如下图&#xff1a; 我们可以看到&#xff0c;在 Spring 的基本架构中&#xff0c;红色圈起来的 Spring Web MVC &#xff0c;也就是本系列的主角 SpringMVC&#xff0c;它是属于…

被忽视的暗面:客户端应用漏洞挖掘之旅

被忽视的暗面&#xff1a;客户端应用漏洞挖掘之旅 前言 在2023年12月15日&#xff0c;我有幸参加了由“字节跳动安全中心”举办的“安全范儿”沙龙活动。作为“中孚信息元亨实验室”的一员&#xff0c;我被邀请分享名为“被忽视的暗面&#xff1a;客户端应用漏洞挖掘之旅”的…

unocss+iconify技术在vue项目中使用20000+的图标

安装依赖 npm i unocss iconify/json配置依赖 vue.config.js文件 uno.config.js文件 main.js文件 使用 <i class"i-fa:user"></i> <i class"i-fa:key"></i>class名是 i- 开头&#xff0c;跟库名:图标名&#xff0c;那都有什么库…

mysql函数group_concat()返回结果不全

目录 一、场景二、原因三、排查1、查看group_concat_max_len配置2、修改group_concat_max_len配置a) 如果不方便重启mysql&#xff0c;可以通过以下命令进行配置修改b) 修改mysql配置文件&#xff0c;永久生效 一、场景 mysql使用group_concat()函数拼接返回字段时&#xff0c…

《游戏-01_2D-开发》

首先利用安装好的Unity Hub创建一个unity 2D&#xff08;URP渲染管线&#xff09;项目 选择个人喜欢的操作格局&#xff08;这里采用2 by 3&#xff09; 在Project项目管理中将双栏改为单栏模式&#xff08;个人喜好&#xff09; 找到首选项&#xff08;Preferences&#xff09…

Docker(二)安装指南:主要介绍 Docker 在 Linux 、Windows 10 和 macOS 上的安装

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 安装 Docker Docker 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南&#xff0c;这里主要介绍 Docker 在…