目录

篇准备篇
章Python和Web开发框架2
1.1Python简介3
1.2Web开发框架基本知识3
1.2.1Web应用本质3
1.2.2Web开发框架核心功能5
1.2.3HTTP简单介绍8
1.2.4HTTP请求消息格式9
1.2.5HTTP响应消息格式9
1.3PythonWeb开发框架10
1.4小结11
第2章初识Django12
2.1Django安装13
2.1.1安装Python13
2.1.2安装Python虚拟环境14
2.1.3安装Django14
2.1.4测试安装效果15
2.2Django基本知识15
2.2.1Django的开发优势15
2.2.2Django的MTV设计模式简介16
2.2.3Django的其他功能18
2.2.4Django的主要文件18
2.3Django基本开发流程19
2.3.1部署开发环境19
2.3.2创建项目19
2.3.3创建应用程序20
2.3.4编写业务逻辑代码20
2.3.5建立URL与视图函数的对应关系20
2.3.6动态加载HTML页面21
2.3.7配置静态文件存放位置23
2.3.8连接数据库27
2.3.9Django后台管理29
2.4小结30
第二篇入门篇
第3章DjangoORM32
3.1DjangoORM的特点33
3.1.1DjangoORM的优点33
3.1.2DjangoORM的缺点33
3.1.3DjangoORM的模式特征33
3.2DjangoORM的用法34
3.2.1数据库连接34
3.2.2创建数据模型34
3.2.3DjangoORM字段35
3.2.4DjangoORM基本数据操作37
3.2.5DjangoORM数据操作常用函数38
3.3样例1:数据库表操作40
3.3.1准备工作40
3.3.2建立路由与视图函数对应关系42
3.3.3编写视图函数44
3.3.4employee数据模型的操作57
3.4DjangoORM跨表操作65
3.4.1与外键有关的跨表操作65
3.4.2与多对多键有关的跨表操作69
3.4.3与一对一键有关的跨表操作71
3.5DjangoORM聚合与分组查询73
3.5.1聚合查询73
3.5.2分组查询74
3.6DjangoORM中的F和Q函数75
3.6.1F函数75
3.6.2Q函数76
3.7小结76
第4章Django路由系统77
4.1路由系统基本配置78
4.1.1路由系统URL基本格式78
4.1.2path()的URL参数79
4.1.3re_path()函数79
4.1.4路由分发80
4.1.5路由命名81
4.1.6路由命名空间82
4.2样例2:路由系统开发83
4.2.1路由系统应用的简单流程83
4.2.2带参数的路由应用86
4.2.3带参数的命名URL配置87
4.3小结89
第5章Django视图90
5.1样例3:视图函数简单介绍91
5.1.1视图样例91
5.1.2HttpRequest对象和HttpResponse对象93
5.1.3视图函数响应“三剑客”96
5.2基于类的通用视图99
5.2.1TemplateView类通用视图100
5.2.2ListView类通用视图101
5.2.3DetailView类通用视图104
5.3样例4:Django视图应用开发107
5.3.1准备工作107
5.3.2URL配置109
5.3.3用户登录110
5.3.4列表页面114
5.3.5人员增加页面116
5.3.6人员修改页面120
5.3.7人员删除122
5.4小结123
第6章Django模板系统124
6.1Django模板基本语法125
6.1.1模板文件125
6.1.2模板变量126
6.1.3模板注释129
6.1.4过滤器129
6.1.5模板标签131
6.2母版和继承137
6.2.1母版137
6.2.2继承138
6.3组件139
6.4样例5:模板开发139
6.4.1准备工作140
6.4.2Bootstrap用法简介140
6.4.3FontAwesome用法简介142
6.4.4生成母版base.html143
6.4.5编写index.html页面145
6.4.6员工相关页面美化147
6.4.7其他页面美化156
6.5小结158
第7章DjangoForm组件159
7.1前期环境准备160
7.1.1DjangoForm表单的主要功能160
7.1.2DjangoForm简单开发流程介绍160
7.1.3编写DjangoForm对象类160
7.1.4建立URL与视图函数对应关系161
7.1.5视图函数161
7.1.6页面代码162
7.1.7运行测试163
7.2DjangoForm字段163
7.2.1DjangoForm字段属性164
7.2.2DjangoForm常用字段166
7.3样例6:DjangoForm组件开发167
7.3.1开发准备167
7.3.2登录页面171
7.3.3列表页面176
7.3.4账号增加180
7.3.5账号修改187
7.4DjangoModelForm组件193
7.4.1DjangoModelForm定义193
7.4.2DjangoModelForm主要方法194
7.5样例7:DjangoModelForm开发195
7.5.1ModelForm表单类195
7.5.2列表页面197
7.5.3账号增加198
7.5.4账号修改199
7.5.5账号删除200
7.6小结200
第8章图书管理系统开发201
8.1系统数据库建立202
8.1.1建立应用程序202
8.1.2建立数据库表202
8.1.3建立系统超级用户205
8.1.4数据模型注册205
8.1.5运行程序206
8.1.6附加说明206
8.2图书管理系统完善207
8.2.1部分配置207
8.2.2页面功能完善208
8.2.3批处理功能214
8.2.4权限管理215
8.3小结216
第9章博客系统开发217
9.1创建博客系统218
9.1.1开发环境初步配置218
9.1.2安装django-ckeditor218
9.1.3安装pillow218
9.1.4创建项目218
9.1.5注册博客应用程序220
9.1.6数据库选择220
9.2博客系统应用程序开发220
9.2.1项目数据库表结构设计220
9.2.2CKEditor富文本编辑器相关知识介绍226
9.2.3生成数据库表233
9.2.4建立超级用户233
9.2.5在管理后台注册数据模型233
9.3用户注册234
9.3.1URL配置234
9.3.2用户注册Form表单235
9.3.3用户注册视图函数239
9.3.4用户注册页面241
9.4用户登录247
9.4.1URL配置247
9.4.2用户登录视图函数247
9.4.3用户登录页面248
9.5博客系统的母版249
9.5.1母版HTML文件250
9.5.2项目的自定义标签257
9.5.3母版中的4个栏目的链接功能258
9.5.4母版其他功能262
9.6博客系统首页264
9.6.1博客首页通用视图函数264
9.6.2博客首页模板文件268
9.6.3头像链接功能271
9.7博客系统检索功能272
9.7.1安装DjangoHaystack273
9.7.2更改DjangoHaystack分词器273
9.7.3配置DjangoHaystack273
9.7.4建立索引类274
9.7.5URL配置275
9.7.6创建search.html276
9.7.7创建索引文件278
9.8文章发布279
9.9文章评论279
9.9.1创建评论应用程序279
9.9.2评论系统的数据模型280
9.9.3文章评论表单280
9.9.4文章评论URL配置281
9.9.5文章评论视图函数281
9.9.6文章评论模板283
9.9.7文章评论部分页面284
9.10文章详细页面285
9.10.1文章详细页面URL配置285
9.10.2文章详细页面视图285
9.10.3文章详细页面模板文件286
9.10.4文章详细页面显示289
9.11小结289
第三篇进阶篇
0章分页组件的设计292
10.1样例8:普通分页编写293
10.1.1URL配置293
10.1.2数据模型293
10.1.3视图函数294
10.2分页组件298
10.2.1分页组件299
10.2.2调用分页组件302
10.3小结303
1章Django调用AJAX编程304
11.1AJAX基本知识305
11.1.1JSON基本知识305
11.1.2AJAX简单使用307
11.2样例9:AJAX应用开发311
11.2.1URL配置311
11.2.2数据模型311
11.2.3员工列表及记录删除311
11.2.4员工信息增加315
11.3小结321
2章Django中间件开发322
12.1Django中间件基本知识323
12.1.1中间件配置323
12.1.2中间件的方法323
12.1.3中间件执行流程325
12.2样例10:Django中间件编程327
12.2.1URL配置327
12.2.2视图函数328
12.2.3注册自定义中间件329
12.2.4测试中间件330
12.3小结331
3章基于Django认证系统的权限管理开发332
13.1Django认证系统简介333
13.1.1认证系统基本知识333
13.1.2默认权限设置333
13.1.3创建自定义权限的方法334
13.2基于Django认证系统的权限管理开发335
13.2.1创建能增加权限的数据模型335
13.2.2注册数据模型336
13.3建立测试系统336
13.3.1测试系统视图函数337
13.3.2测试系统母版338
13.3.3用户列表页面339
13.3.4测试系统URL配置340
13.4权限梳理与分配341
13.4.1权限记录整理341
13.4.2权限记录输入342
13.4.3权限分配342
13.4.4测试系统342
13.5小结343
4章Django通用权限管理设计344
14.1基于RBAC的通用权限管理实现345
14.1.1RBAC权限管理模块文件目录结构345
14.1.2数据库表结构设计347
14.1.3Role表的构建347
14.1.4UserInfo表的构建348
14.1.5Permission表的构建348
14.1.6PermGroup表的构建350
14.1.7Menu表的构建350
14.1.8生成数据库表351
14.1.9补充说明351
14.1.10用户权限数据初始化配置352
14.1.11利用中间件验证用户权限356
14.1.12生成系统菜单所需数据359
14.2样例11:RBAC权限管理在项目中的应用364
14.2.1引入RBAC权限管理的基本流程364
14.2.2RBAC权限管理模块部署到新项目364
14.2.3复制及新建相关文件364
14.2.4配置参数365
14.2.5测试项目的结构367
14.2.6权限分配管理375
14.3小结379
5章基于权限管理的车费管理系统开发380
15.1开发准备381
15.1.1生成项目和应用381
15.1.2导入RBAC模块382
15.2建立数据模型383
15.2.1数据模型设计383
15.2.2生成数据库表385
15.3用户登录和注销385
15.3.1用户登录385
15.3.2用户注销387
15.4建立母版文件388
15.4.1母版文件388
15.4.2页面头部390
15.4.3首页390
15.5车辆信息维护391
15.5.1URL配置391
15.5.2车辆信息查看392
15.5.3车辆信息增加393
15.5.4车辆信息修改395
15.5.5车辆信息删除397
15.6部门信息维护397
15.6.1URL配置397
15.6.2部门信息列表398
15.6.3部门信息增加399
15.6.4部门信息修改400
15.6.5部门信息删除402
15.7用户分配402
15.7.1URL配置402
15.7.2用户列表402
15.7.3用户分配到部门404
15.8车费上报407
15.8.1URL配置407
15.8.2车费信息列表407
15.8.3车费信息增加412
15.8.4车费信息修改420
15.9车费审批427
15.9.1URL配置427
15.9.2引入分页组件427
15.9.3车费审批功能427
15.9.4取消审批功能437
15.10车费统计439
15.10.1URL配置439
15.10.2车费统计视图439
15.11增加权限管理445
15.11.1权限梳理445
15.11.2权限数据输入及权限分配447
15.11.3权限管理源代码调整447
15.11.4添加URL白名单448
15.11.5视图函数代码调整449
15.11.6视图函数login()代码调整449
15.11.7base.html代码调整449
15.11.8页面代码调整451
15.11.9权限测试452
15.12小结452
6章应用项目部署453
16.1准备工作454
16.1.1基本知识454
16.1.2安装环境简介455
16.1.3准备工作455
16.2安装MySQL数据库456
16.2.1安装MySQL数据库456
16.2.2配置MySQL数据库457
16.2.3生成项目数据库458
16.3Python环境部署458
16.3.1关于Python458
16.3.2升级pip459
16.4安装uWSGI服务器459
16.4.1安装uWSGI459
16.4.2测试uWSGI460
16.5安装Nginx服务器461
16.5.1安装Nginx461
16.5.2测试Nginx461
16.6项目部署前的工作461
16.6.1修改项目配置461
16.6.2服务器上的目录设置462
16.6.3项目代码上传462
16.6.4安装虚拟环境463
16.6.5在服务器上配置项目463
16.7配置Nginx和uWSGI464
16.7.1配置Nginx464
16.7.2配置uWSGI465
16.8测试466
16.9小结466