Python3自动化软件发布系统:Django 2实战 作者:陈刚 出版时间:2020年版内容简介 本书以新的Python 3.6以上版本为编程语言,以Django 2.1以上版本为Web框架,通过一步一步详细讲解,实现一个自动化软件部署系统,并将所有代码开源托管在Github网站上。 书中不但讲解了Python的基础知识、Django的模型、视图、模板之间的关系,而且还通过实战项目,介绍了Django Rest Framework(DRF)的开发步骤、Django Channels实现Websocket的编程技巧,以及Django TestCase、Mock等测试用例的编写。 除此之外,对于IT公司在DevOps转型过程中涉及的GitLab、Jenkins、SaltStack等CI/CD工具的安装配置,以及自动化软件部署系统与之进行交互的API,都有较深入的讲解。 本书适合运维研发领域的人员,或是有一定Python基础但又想深入学习Python Web开发的广大IT人员阅读参考。目录第1章Python基础11.1Python基本数据类型的常用操作51.1.1数字(Number)——人生不能只会做减法61.1.2字符串(String)——一入编码深似海81.1.3列表(List)——古龙之七种武器101.1.4元组(Tuple)——一颗不变心141.1.5字典(Dictionary)——键值CP151.1.6集合(Set)——我们的集合无悖论161.2顺序、分支及循环语句171.2.1顺序编程——知所先后,则近道矣181.2.2分支语句——《交叉小径的花园》191.2.3循环——《恐怖游轮》211.3函数和类221.3.1函数——好莱坞原则221.3.2类——有没有对象,都累251.4并发编程281.4.1进程池示例——《低俗小说》281.4.2线程池示例301.5模块化311.6测试341.7小结39第2章Django基础422.1Web及HTTP422.1.1Web简介422.1.2HTTP协议432.1.3HTTP协议方法442.2HTML、CSS、JavaScript452.2.1HTML452.2.2CSS452.2.3JS(JavaScript)462.2.4Python、Django是怎么和Web搭上关系的462.3Django简介及Web实现482.3.1Django简介482.3.2Python的Web服务器492.3.3Django模块实现Web服务器492.4Django新建项目应用及运行机制502.4.1新建Django项目应用502.4.2Django目录及文件分析512.4.3Django框架的工作机制532.5Django视图552.5.1基于函数的视图552.5.2Django的HttpRequest对象582.5.3Django HttpRequest对象中的QueryDict对象592.5.4Django的HttpResponse对象592.6.1UrlConf简介612.6.2UrlConf的Urlpatterns622.6.3UrlConf的路由分发632.6.4UrlConf的反向解析642.6.5UrlConf的命名空间652.7Django模板Template662.7.1Django Template Language简介672.7.2Django Template加载配置及基本使用692.7.3Django Template的Render快捷使用712.8Django模型Model722.8.1Model ORM732.8.2Model示例732.8.3ORM常用Field及属性772.8.4Django Shell操作ORM792.8.5函数视图操作ORM(显示board列表)812.8.6函数视图操作ORM(显示指定board的topic列表)832.8.7函数视图操作ORM(新增topic)852.8.8函数视图操作ORM(指定board的topic内容)882.8.9类视图操作ORM(显示board列表)902.8.10Model的底层数据库连接配置922.9Django表单Form932.10Django后台管理Admin952.10.1Admin界面登录952.10.2应用Model的注册962.10.3Model Admin自定义管理界面982.11Django测试992.12小结100第3章自动化软件发布工作流1013.1示例项目1023.1.1编写示例代码1023.1.2编译项目1053.1.3手工运行1063.1.4其他示例代码1073.2使用GitLab保存源代码1093.2.1建立用户和项目组1093.2.2建立项目1133.2.3将本地代码推送到GitLab中1153.3使用Jenkins编译项目1203.4使用Nginx作为软件仓库1253.4.1Jenkins和Nginx服务器之间免密码登录1263.4.2安装并配置Nginx服务器1283.4.3安装Jenkins插件1283.4.4配置Jenkins Pipeline1293.4.5验证1303.5使用SaltStack推送服务端脚本1323.5.1Salt Master及Salt Minion的安装1323.5.2通过Salt Master远程执行脚本命令1343.5.3SaltAPI配置1373.5.4实现远程拉取软件、启停服务的脚本范例1463.5.5测试1513.6Jenkins REST API使用讲解1533.6.1Jenkins原生API的获取1543.6.2PythonJenkins库的安装1593.6.3PythonJenkins的常用方式1603.6.4封装一个Python脚本,实现自动化编译软件1633.7GitLab REST API使用讲解1673.7.1PythonGitLab的安装、配置1673.7.2PythonGitLab常用功能使用1693.7.3使用PythonGitLab获取ZepBackendJava文件列表1743.8小结175第4章自动化发布的数据库模型1764.1功能展示1764.1.1用户管理1764.1.2应用App的管理1764.1.3服务器的管理1784.1.4应用权限的管理1784.1.5发布单的新建及软件包编译1794.1.6环境流转1794.1.7软件发布1804.1.8软件流转及发布历史1814.2新建项目及App1814.2.1新建目录,通过Pip安装相关模块1814.2.2新建项目及相关App1814.2.3生成数据及管理员密码1824.2.4启动Django服务并验证1844.2.5与PyCharm集成1854.3调整文件内容1864.3.1中文及时区1864.3.2App注册1874.3.3URL路由调整1894.4Django Models的抽象基类1904.5应用数据表1924.5.1models.py文件内容1924.5.2将应用数据表迁移进数据库1964.5.3生成模拟数据1984.6环境数据表2044.6.1models.py文件内容2044.6.2将环境数据表迁移进数据库2044.6.3生成模拟数据2064.7服务器数据表2074.7.1models.py文件内容2074.7.2将服务器数据表迁移进数据库2094.7.3生成模拟数据2114.8发布单状态数据表2124.8.1models.py文件内容2134.8.2将发布状态数据表迁移进数据库2134.8.3生成模拟数据2154.9发布单数据表2164.9.1models.py文件内容2164.9.2将发布单数据表迁移进数据库2204.9.3生成模拟数据2214.10权限管理数据表2244.10.1models.py文件内容2254.10.2将权限数据表迁移进数据库2264.10.3生成模拟数据2284.11历史记录数据表2314.11.1models.py文件内容2314.11.2将历史数据表迁移进数据库2324.12理解Django Migrate(数据迁移)2334.12.1Migrate原理2344.12.2理解更新models.py文件的原理2364.12.3重置migration2384.13小结239第5章用户注册登录及密码管理2415.1用户管理简介2415.2Web开发中的Cookie及Session2425.2.1Cookie2425.2.2Session2435.3中间件(Middleware)及预安装(INSTALLED_APPS)2455.3.1Django框架中的Middleware2455.3.2Django框架中的INSTALLED_APPS2485.4用户管理2495.4.1用户注册2505.4.2用户认证2505.4.3用户登录2505.4.4用户退出2515.4.5修改密码2515.5用户组管理2525.6Django权限功能2535.6.1权限管理简介2535.6.2用户权限2545.6.3用户组权限2565.7Manabe用户注册2565.7.1用户注册表单2575.7.2用户注册视图2605.7.3用户注册模板2625.7.4用户注册路由2675.8Manabe用户登录及退出2685.8.1用户登录表单2685.8.2用户登录视图2695.8.3用户登录模板2705.8.4用户登录路由2725.9Manabe邮箱更改2725.9.1邮箱更改表单2735.9.2邮箱更改视图2745.9.3邮箱更改模板2755.9.4邮箱更改路由2765.10Manabe密码更改2775.10.1密码更改表单2775.10.2密码更改视图2795.10.3密码更改模板2805.10.4密码更改路由2815.11Manabe通过邮箱重置密码2815.11.1Django邮件发送功能启用2825.11.2密码重置路由注册2835.11.3密码重置模板2845.11.4Django内置视图总结2915.12Manabe登录验证码2945.13Manabe首页2975.13.1网站首页视图2985.13.2网站模板2985.13.3Django内置视图总结3015.14小结302第6章应用录入和服务器录入3036.1App服务录入页面3036.1.1App服务网页功能展示3036.1.2录入、编辑、展示的URL设置3066.1.3App录入的视图3086.1.4App录入的表单3126.1.5App录入的模板3186.1.6App录入的浏览器验证3236.2App服务编辑页面3236.2.1App编辑视图3236.2.2App编辑模板文件3256.3App服务列表展示3286.3.1App服务列表视图3286.3.2App服务列表模板文件3306.4App服务详情页面3366.4.1App服务详情视图3366.4.2App服务详情模板3376.5App服务权限设计3396.5.1Rightadmin权限模块的路由3406.5.2Rightadmin权限显示3426.5.3Rightadmin权限显示后端的实现3456.5.4Rightadmin权限编辑功能模板3466.5.5Rightadmin权限编辑后端的实现3496.5.6Rightadmin权限调用的实现3516.6服务器的录入、编辑、展示3546.6.1服务器模块的URL路由设置3556.6.2服务器的录入视图类、Form表单文件及模板3566.6.3服务器的编辑视图类及模板3646.6.4服务器的展示视图类及模板3686.6.5服务器的详情视图类及模板3736.7Django Model测试3756.8Django View测试3776.9Django Form测试3786.10小结381第7章生成发布单3827.1发布单介绍3837.2新建发布单3847.2.1新建发布单表单3847.2.2新建发布单视图3887.2.3新建发布单模板3907.2.4新建发布单路由3937.3发布单列表3947.3.1发布单列表视图3957.3.2发布单列表模板3967.3.3发布单列表路由3997.4编译程序包4007.4.1编译视图4007.4.2编译模板4057.4.3编译路由4107.4.4程序包检测4107.5发布单详情4127.5.1发布单详情视图4127.5.2发布单详情模板4137.5.3发布单详情路由4147.6通过上传方式新建发布单4147.6.1发布单上传表单4157.6.2发布单上传视图4177.6.3发布单上传模板4217.6.4发布单上传路由4247.7小结425第8章环境流转4268.1环境流转列表4268.1.1环境流转列表视图4278.1.2环境流转列表模板4298.1.3环境流转列表路由4348.2环境流转功能4358.2.1环境流转功能视图4358.2.2环境流转模板4388.2.3环境流转JS4398.2.4环境流转路由4418.3环境流转历史4428.3.1环境流转历史视图4428.3.2环境流转历史模板4448.3.3环境流转历史路由4488.4小结448第9章软件发布4499.1发布首页展示4499.1.1发布首页视图类4499.1.2发布首页模板文件4529.1.3发布首页路由设置4569.2发布详情页展示4579.2.1发布详情页视图类4579.2.2发布详情页模板4599.2.3发布详情页的JS代码4669.2.4发布详情页路由4679.3发布功能实现4689.3.1浏览器的JS获取发布参数,并发布到后端4699.3.2deploy_cmd函数解析发布参数4719.3.3deploy函数启动Python的线程池4749.3.4cmd_run函数操作SaltAPI4769.3.5cmd_run运行过程中调用的日志读/写及数据表更新4829.3.6服务启停脚本的实现4879.4服务启停首页展示4959.4.1服务启停首页视图类4959.4.2服务启停首页网页模板4969.4.3服务启停首页路由设置5009.5服务启停详情页展示5009.5.1服务启停详情视图类5019.5.2服务启停详情网页模板5039.5.3服务启停详情路由5109.6部署历史实现5109.6.1部署历史视图函数5119.6.2部署历史网页模板5129.6.3部署历史路由设置5169.7Django Mock测试5169.8小结518第10章使用Django Channels实现基于WebSocket的实时日志51910.1WebSocket协议简介52010.1.1客户端(浏览器)WebSocket52010.1.2后台服务端WebSocket52310.1.3Django Channels名词解释52310.2Django Channels项目(mablog)安装配置52610.2.1Pip安装Channels模块52610.2.2新建mablog项目52710.3mablog数据库Model简介52910.3.1设计models.py52910.3.2将models.py的内容更新到数据库53010.4日志写入实现53110.4.1wslog的路由设置53310.4.2wslog的log_add函数53310.4.3wslog的log_add函数的测试53410.5实时日志读取实现53510.5.1日志读取的路由设置53610.5.2日志读取的视图函数53610.5.3日志读取的网页模板53610.6使用Django Channels实现后端WebSocket54110.6.1改造settings.py文件54110.6.2新增asgi.py文件54410.6.3新增routing.py文件54510.6.4新增consumers.py文件,实现Channels消费者函数54610.6.5测试ASGI服务器54810.6.6分析客户端的JS代码54910.7Django Channels生产环境运行配置55110.8Django Channels测试55210.9小结553第11章使用Django REST Framework开发API接口55411.1RESTful API及Django REST Framework简介55511.1.1RESTful关键字55611.1.2Django REST Framework简介55711.2DRF安装配置55811.2.1安装DRF55811.2.2配置DRF55811.3查看和修改用户Token56011.3.1获取和更新Token的视图函数56011.3.2获取和更新Token的网页模板56111.3.3获取和更新Token的URL路由56111.3.4增加网页右上角查看Token的链接56211.3.5通过网页测试查看和修改用户Token的功能56211.4手工建立一个API的Django App应用56311.4.1新增API的目录及文件56311.4.2在settings.py文件里新增应用56511.4.3测试apitokenauth功能56611.5实现查看用户的RESTful API56611.5.1序列化和反序列化User数据表字段56711.5.2生成User视图集合类56811.5.3为User的API注册访问路由56911.6实现查看发布单的RESTful API57111.6.1序列化DeployPool数据表字段57111.6.2生成DeployPool视图集合类57211.6.3为发布单的API注册访问路由57311.7实现查看、新增和修改服务器的RESTful API57511.7.1序列化Server数据表字段57511.7.2生成Server视图集合类57611.7.3为Server API注册访问路由57911.7.4使用Requests库测试Server API58011.8实现查看、新增和修改App服务应用的RESTful API58211.8.1序列化App服务应用数据表字段58211.8.2生成App服务应用视图集合类58211.8.3为App服务应用API注册访问路由58411.9Django REST Framework API测试58511.10小结588第12章Django日志和数据统计及生产环境部署589...... 上一篇: 国家骨干高职院校重点建设项目·软件技术专业系列教材 手机软件开发技术 周士凯,唐春玲 主编 下一篇: Python网络爬虫从入门到实践 第2版 唐松 2019年版