| 作者 |
| 段艺 涂伟忠寇雪松 |
| 丛书名 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782001061540 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------Django开发从入门到实践--------------------------- Django是一款高性能的Python Web开发框架,本书全面讲解Django开发相关的内容。本书共分为24章,主要内容包括Python Web开发的基础知识、Django项目实战、使用Django开发API、Django系统运维等部分,其中基础知识部分讲解Python基础知识、各种常用的数据结构、正则表达式、HTTP协议、字符串编码等;实战开发部分讲解两个具体的项目,从功能需求设计、模块划分,再到最终的编码实现,手把手教你如何从零打造一个自己的项目;Django系统运维部分讲解如何线上部署一个系统、需要掌握的基础知识、使用的每个组件的作用,让读者明白其中的原理,出现问题之后如何排查。 ---------------------------Python Django Web典型模块开发实战--------------------------- 为了帮助大家成为一名Django全栈开发领域的大神级程序员,本书讲解了12个实战项目案例的典型开发模块,便于让大家可以从项目需求分析、产品设计、业务模涵盖的内容包括从微博聊起多端应用;用django-rest-framework实现豆瓣API应用;用Django设计大型电商的类别表;用Django实现百度开发者认证业务模型;Token登录模块开发;实现优酷、爱奇艺会员VIP模式;违禁词自审查功能模块开发;吾爱破解论坛反爬虫机制分析;跨域问题的解决办法;用Django实现支付功能模块;通过Redis缓存功能解决亿万级别的订单涌进;前后端分离项目从上线部署到云服务器。本书适合Django自学者和有一定基础的Django开发者阅读,还适合其他领域有Python基础而想转型到Django开发的人员阅读。 |
| 目录 |
---------------------------Django开发从入门到实践--------------------------- 序(一) 序(二) 前言 第1篇 基础知识 第1章 Django简介 3 1.1 Django基本介绍 3 1.2 Django发布情况 4 1.3 Django的MVT架构简介 5 1.3.1 MVC模式 5 1.3.2 Django MVT模式 5 1.4 Django和主流Web框架对比 6 1.5 开发环境选择 6 1.5.1 Windows平台 7 1.5.2 Mac平台 7 1.5.3 Linux平台 8 第2章 掌握必要的基础知识 9 2.1 Web开发需要什么基础知识 9 2.2 Python语言入门 10 2.2.1 Python语言简介 11 2.2.2 执行Python代码的方式 11 2.2.3 Python中的缩进格式 12 2.2.4 常见的运算符 13 2.2.5 数据类型 14 2.2.6 字符串 14 2.2.7 列表 15 2.2.8 元组 19 2.2.9 字典 19 2.2.10 集合 21 2.2.11 数据类型的转换 22 2.2.12 常见数据结构操作的时间复杂度 23 2.2.13 选择语句与循环语句 26 2.2.14 关于模块 27 2.2.15 Python中的函数 28 2.2.16 Python中的类 30 2.2.17 命令行参数 32 2.2.18 引用和复制一个对象 32 2.2.19 常用内置函数 33 2.2.20 常用模块的功能 35 2.3 正则表达式 37 2.3.1 正则表达式中的元字符 37 2.3.2 正则模块的核心函数 39 2.3.3 理解贪婪与非贪婪 41 2.3.4 正则表达式中的Flag 42 2.4 HTTP协议的基础知识 43 2.5 绝对路径与相对路径 47 2.6 Python中的字符串编码 48 第3章 Django初步体验 51 3.1 Django的请求和响应 51 3.2 Django的模型和admin站点 52 3.2.1 新建blog应用 53 3.2.2 修改项目设置 53 3.2.3 编写模型代码 54 3.2.4 体验admin站点 55 3.2.5 对admin站点进行简单定制 58 3.3 初识 Django QuerySet 62 3.3.1 基本查询 63 3.3.2 添加记录 64 3.3.3 修改记录 65 3.3.4 删除记录 65 3.4 Django的视图和函数 65 第2篇 实践学习一:从一个简单的资源管理做起 第4章 需求的确定和项目排期规划 75 4.1 产品定位 75 4.2 功能需求的确定 76 4.3 产品设计的确定 77 4.4 产品实现的排期 77 第5章 数据模型的设计与实现 79 5.1 模型简介 79 5.2 模型的数据字段 79 5.2.1 数值类字段 80 5.2.2 字符类字段 80 5.2.3 布尔类字段 81 5.2.4 日期时间类字段 81 5.2.5 文件类字段 82 5.2.6 IP地址类字段 82 5.2.7 二进制类字段 83 5.3 模型关系字段 83 5.3.1 外键字段 83 5.3.2 多对多字段 83 5.3.3 一对一字段 84 5.4 字段参数 84 5.5 图书管理系统模型的实现 85 5.6 数据库查询接口简介 88 5.6.1 创建对象 89 5.6.2 修改对象 89 5.6.3 查找对象 90 5.6.4 删除对象 91 第6章 网站的入口——URL设计 92 6.1 URL设计简介 92 6.2 URL反转简介 94 第7章 页面和功能的实现 96 7.1 基本页面的实现 96 7.2 Django模板语言简介 101 7.3 Django用户认证和鉴权简介 106 7.4 用户系统的实现 109 7.4.1 用户注册功能的实现 109 7.4.2 用户登录功能的实现 115 7.4.3 用户注销功能的实现 117 7.4.4 修改密码功能的实现 118 7.5 图书管理相关功能的实现 124 7.5.1 图书添加功能的实现 124 7.5.2 图片上传功能的实现 128 7.5.3 图书列表功能的实现 131 7.5.4 图书详情功能的实现 136 第3篇 实践学习二:从博客做起 第8章 个人博客网站的规划和设计 141 8.1 功能需求的设计 141 8.2 模块划分 143 第9章 Django通用视图简介 144 9.1 TemplateView简介 144 9.2 RedirectView简介 145 9.3 DetailView简介 145 9.4 ListView简介 146 9.5 FormView简介 147 9.6 CreateView简介 147 9.7 UpdateView简介 147 9.8 DeleteView简介 148 第10章 基本页面框架的实现 149 10.1 前端页面框架的实现 149 10.2 后端页面框架的实现 154 第11章 用户系统和认证模块的实现 158 11.1 同步数据库文件 158 11.2 用户登录功能的实现 158 11.3 用户注销功能的实现 164 第12章 导航栏组件的实现 165 12.1 导航栏数据模型的设计 165 12.2 导航栏前端组件的实现 166 12.3 导航栏管理页面的制作 168 第13章 友情链接组件的实现 180 13.1 友情链接数据模型的设计 180 13.2 友情链接前端组件的实现 181 13.3 友情链接管理页面的实现 182 第14章 “碎碎念”组件的实现 191 14.1 “碎碎念”数据模型的设计 191 14.2 “碎碎念”前端组件的实现 192 14.3 “碎碎念”组件管理页面的实现 193 14.4 “碎碎念”前端TimeLine页面的实现 205 第15章 文章组件的实现 209 15.1 文章数据模型的设计 209 15.2 文章分类前端组件的实现 210 15.3 文章分类管理的页面 212 15.4 文章管理页面 218 15.5 文章前端组件的实现 234 第4篇 使用Django开发API 第16章 序列化 241 16.1 搭建一个新的开发环境 241 16.2 开始编写Web API 241 16.3 创建模型 242 16.4 创建一个序列化类 243 16.5 了解Serializers的工作方式 244 16.6 使用ModelSerializers 246 16.7 使用序列化器编写常规的视图 247 16.8 测试Web API 249 第17章 请求和响应 251 17.1 Request对象 251 17.2 Response对象 251 17.3 响应状态码 251 17.4 包装 API 视图 252 17.5 使用新组件编写视图 252 17.6 给URLs添加可选格式化后缀 254 17.7 它看起来怎么样 255 17.8 API可浏览性 257 第18章 基于类的视图 258 18.1 使用类视图重写API 258 18.2 使用Mixins混入类 260 18.3 使用通用类视图 261 第19章 认证和权限 263 19.1 模型类添加一些信息 263 19.2 添加用户相关的API 264 19.3 将Snippets和用户关联 265 19.4 给API添加只读用户字段 266 19.5 给视图添加必要的权限 267 19.6 给可浏览API添加登录功能 267 19.7 实现级别的权限 268 19.8 通过API实现认证 269 19.9 认证和权限总结 270 第20章 关系和超链接API 271 20.1 为API创建根视图 271 20.2 添加高亮显示功能的视图 271 20.3 链接API 272 20.4 确保URL都命名 274 20.5 添加分页功能 275 20.6 页面上浏览API 275 第21章 ViewSets和Routers 276 21.1 使用ViewSets进行重构 276 21.2 显式将URL和ViewSets绑定起来 278 21.3 使用 Routers 自动化URL配置 279 21.4 使用视图、视图集的利弊 279 第5篇 Django系统运维 第22章 部署基础知识 283 22.1 部署基础知识储备 283 22.2 Linux进程分析 284 22.3 Linux端口分析 287 第23章 部署上线 290 23.1 Django部署前的准备 290 23.1.1 运行开发服务器进行测试 290 23.1.2 安装Nginx 290 23.2 使用uWSGI部署 292 23.2.1 安装uWSGI软件 292 23.2.2 使用 uWSGI运行项目 292 23.3 使用supervisor管理进程 293 23.3.1 安装supervisor软件包 293 23.3.2 supervisor配置 293 23.3.3 supervisor使用简介 294 23.4 配置Nginx 295 第24章 其他常见功能 297 24.1 Django中间件 297 24.1.1 工作原理 297 24.1.2 激活中间件 299 24.1.3 编写中间件 300 24.1.4 其他中间件钩子 301 24.2 Django信号简介 303 24.2.1 信号机制简介 303 24.2.2 监听信号 304 24.2.3 自定义信号 306 24.2.4 发送信号 306 24.3 Django缓存框架 308 24.3.1 缓存机制简介 308 24.3.2 设置缓存 308 24.3.3 网站缓存 311 24.3.4 视图缓存 311 24.3.5 模板分片缓存 312 24.3.6 低层次缓存接口 312 24.4 Django日志 314 24.4.1 Django日志简介 314 24.4.2 Django日志扩展 314 24.4.3 Django默认日志配置 315 24.5 Django发送邮件 316 24.6 Django分页 316 ---------------------------Python Django Web典型模块开发实战--------------------------- 前言 第1章 从新浪微博聊起多端应用 1 1.1 AOP面对切面编程思想 1 1.2 Django的前后端分离 2 1.2.1 什么是API 2 1.2.2 RESTful规范——如何写API 3 1.2.3 Django REST framework简介 4 第2章 用Django REST framework实现豆瓣API应用 6 2.1 豆瓣API功能介绍 6 2.2 Django REST framework序列化 6 2.2.1 Postman的使用 7 2.2.2 用serializers.Serializer方式序列化 7 2.2.3 用serializers.ModelSerializer方式序列化 10 2.3 Django REST framework视图三层封装 13 2.3.1 用mixins.ListModelMixin+GenericAPIView的方式实现视图封装 13 2.3.2 用generics.ListAPIView的方式实现视图封装 14 2.3.3 用viewsets+Router的方式实现视图封装 15 2.3.4 小结 17 第3章 用Django设计大型电商的类别表 19 3.1 电商类别表的项目功能需求 19 3.1.1 类别表需求分析 19 3.1.2 使用Vue.js在前端开发一个电商导航栏项目demo1 20 3.2 为什么不用传统建表方式建类别表 32 3.2.1 使用PyCharm新建后端演示项目 32 3.2.2 完善demo2的后台逻辑代码 37 3.2.3 前后端项目联合调试 39 3.3 使用Django的model实现类别表建立 44 3.3.1 四表合一 44 3.3.2 数据导入 45 3.3.3 前后端项目联合调试 47 第4章 用Django实现百度开发者认证业务模型 50 4.1 Web 2.0时代,UGC的时代 50 4.1.1 什么是UGC 50 4.1.2 UGC、PGC和OGC三种模式的关系演变 51 4.2 内容生产者认证业务模型是基础 52 4.2.1 内容生产者认证的原理 52 4.2.2 业界主流的两种认证方式 53 4.3 初始化一个项目为功能演示做准备 54 4.3.1 演示认证业务项目的前端逻辑 54 4.3.2 演示认证业务项目的后端逻辑 57 4.4 Django实现通过手机号注册功能 60 4.4.1 业务流程原理及需求分析 60 4.4.2 在demo3中开发注册用户的静态页面 61 4.4.3 编写前端验证用户信息的逻辑代码 63 4.4.4 短信服务商的对接 65 4.4.5 在后端demo4中编写验证码相关逻辑 68 4.4.6 编写发送验证码的前端逻辑代码 72 4.4.7 完成确认注册功能 73 4.5 Django实现邮箱激活功能 75 4.5.1 什么是POP3、SMTP和IMAP 75 4.5.2 开启新浪邮箱的SMTP服务 76 4.5.3 编写邮箱激活功能的前端逻辑代码 76 4.5.4 在前端demo3中增加认证激活代码 79 4.5.5 小结及进一步的设计思路 80 第5章 区块链时代与Token登录 81 5.1 Cookie/Session在前后端分离项目中的局限性 81 5.1.1 什么是Cookie机制 81 5.1.2 Django中使用Cookie 83 5.1.3 Cookie机制的危险与防护 88 5.1.4 什么是Session机制 90 5.1.5 Django中使用Session 92 5.1.6 小结:Cookie/Session的局限性 95 5.2 为什么是Token 95 5.2.1 什么是Token 95 5.2.2 基于区块链技术发展中Token的技术展望 96 5.3 Django实现Token登录的业务模式 97 5.3.1 Django REST framework的Token生成 97 5.3.2 Django REST framework的Token认证 99 5.3.3 Django REST framework的Token的局限性 102 5.3.4 Json Web Token的原理 103 5.3.5 JWT在Django中的应用 104 第6章 实现优酷和爱奇艺会员的VIP模式 109 6.1 为内容付费是趋势 109 6.1.1 网速提升对产品设计的影响 109 6.1.2 内容付费模式介绍 110 6.2 Django权限管理的实现 110 6.2.1 什么是权限 111 6.2.2 新建项目来完成权限管理雏形演示 111 6.2.3 什么是RBAC 118 6.2.4 Django项目中使用RBAC 118 6.2.5 Django基于中间件的权限验证 126 6.3 Django REST framework实现权限管理 130 6.3.1 准备演示权限管理的初始代码 131 6.3.2 为demo6_drf添加身份验证功能 137 6.3.3 为demo6_drf添加权限管理功能 140 6.3.4 验证demo6_drf权限管理的功能 142 第7章 违禁词自审查功能 148 7.1 违禁词自审查功能的重要性 148 7.1.1 违禁词的影响 148 7.1.2 可以避免法律风险 148 7.2 Django REST framework实现模糊搜索功能 149 7.2.1 演示实现模糊搜索的后端逻辑 149 7.2.2 演示实现模糊搜索的前端逻辑 155 7.2.3 开发模糊搜索功能 158 7.3 Django REST framework开发违禁词自审查功能 162 7.3.1 开发违禁词自审查功能后端逻辑 162 7.3.2 创建新用户 165 7.3.3 开发违禁词自审查功能前端逻辑 169 7.3.4 违禁词自审查功能开发 172 第8章 分析吾爱破解论坛反爬虫机制 182 8.1 网络爬虫与反爬虫 182 8.1.1 什么是网络爬虫 182 8.1.2 Robots协议 184 8.1.3 常见的反爬虫手段 184 8.2 吾爱破解论坛怎样反爬虫 190 8.2.1 注册阶段的反爬虫 190 8.2.2 登录阶段的反爬虫 192 8.2.3 搜索阶段的反爬虫 197 8.2.4 怎样彻底阻止网络爬虫 198 8.3 Django REST framework实现频率限制 201 8.3.1 建立演示频率限制功能的项目 201 8.3.2 网页客户端向服务端提交了多少信息 203 8.3.3 频率限制功能开发 205 8.3.4 频率限制该怎样确定 207 第9章 关于跨域问题的解决办法 209 9.1 什么是跨域 209 9.1.1 浏览器的同源策略 209 9.1.2 什么情况下会发生跨域问题 216 9.2 跨域问题的几种解决思路 216 9.2.1 通过jsonp跨域 216 9.2.2 document.domain + iframe跨域 217 9.2.3 CORS(跨域资源共享) 217 9.2.4 Nginx代理跨域 218 9.2.5 小结 218 9.3 前端项目解决跨域问题 218 9.3.1 webpack与webpack-simple的区别 218 9.3.2 在前端项目中解决跨域问题 221 9.4 在后端项目中解决跨域问题 224 第10章 用Django实现支付功能 228 10.1 分析目前主流的支付模式 228 10.1.1 支付宝的业务模式 228 10.1.2 生成公钥和私钥 232 10.2 支付宝文档分析 239 10.2.1 请求地址 240 10.2.2 必填的公共参数 240 10.2.3 必填的请求参数 241 10.2.4 签名加密 242 10.3 Django实现支付宝的对接 243 10.3.1 演示对接支付宝的实例项目 243 10.3.2 开发注册和登录功能 246 10.3.3 Django开发支付宝的支付功能 250 第11章 Redis缓存——解决亿万级别的订单涌进 257 11.1 Django实现缓存机制 257 11.1.1 缓存的介绍 257 11.1.2 Django提供的6种缓存方式 257 11.1.3 演示Django缓存机制项目 258 11.1.4 Django开发缓存功能 261 11.1.5 各种缓存配置 262 11.2 Django REST framework实现缓存机制 264 11.2.1 新建演示Django REST framework实现缓存机制的项目 265 11.2.2 Django REST framework开发缓存机制 266 11.2.3 缓存配置使用Redis 269 第12章 前后端分离项目上线部署到云服务器 271 12.1 准备一个前后端分离项目 271 12.1.1 准备一个最基础的前后端分离项目 271 12.1.2 对前后端分离项目进行改造 274 12.2 云服务器的准备 284 12.2.1 购买华为云服务器 284 12.2.2 服务器端安装MySQL5.7 285 12.2.3 压缩项目 288 12.2.4 使用FileZilla将demo12a.zip和demo12b.zip传到服务器端 289 12.3 远程同步数据库 291 12.4 正式开始部署 295 12.4.1 部署前端项目demo12b 295 12.4.2 部署后端项目demo12a 298 |