Python Django 4构建动态网站的16堂课
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。
本文主要介绍了Python Django 4构建动态网站的16堂课,希望能对学习Python的同学们有所帮助。
1. 前言
Django是一个由Python编写的具备完整建站能力的Web框架。通过使用这个框架,Python程序员只需几个简单的指令,就可以轻松构建一个正式网站所需的网站框架,并从框架中开发出一个功能齐全的网站。
Python + Django确实是迅速开发、设计、搭建和部署网站的最佳组合。Django是用备受推崇的“胶水”语言Python编写的,是一个完全开放源代码的网站架构或 Web 框架(Web Framework)。Django本身基于MVC模型,即Model(模型)+ View(视图)+ Controller(控制器),因此天然具有出色的MVC基因:开发迅速、部署快、可重用性高、维护成本低等。鉴于一些公司需要开发外包软件,因此本书的开发范例也涉及了调用Google等应用的编程接口。
为了方便读者学习,尽管Python语言拥有许多令人兴奋的加速技巧,本书尽量避免使用一些初学者难以理解的陈述方式。我们希望读者能够在最短的时间内了解使用Python语言构建网站的基本知识,并可以立即开始构建自己独特的网站。在熟悉流程和架构之后,读者可以进一步提高网站的性能。
所以,只要读者具备基本的Python程序设计能力以及对网站架构和运行原理有基本的概念,基本上就有足够的能力通过本书来构建属于自己的动态网站。这个网站将能够充分利用Python语言的所有功能,包括连接数据库、使用社交媒体账号验证机制、实时计算和处理数据,并能够完全实现所有创意和想法。
2. 书籍推荐
本书并非讲述如何使用Python程序设计语言进行网页的程序设计,也不是单独介绍Django框架及其核心组件,而是通过16堂课让读者迅速掌握使用Python + Django的最佳组合进行网站开发、设计和搭建,并将其部署到真实世界的网络主机上,尽快投入实际运营。
本书跳过了一般的Python程序设计语言教科书中“事无巨细”的烦琐,也摒弃了普通的Django参考书中“细枝末节”的繁复,而是直截了当地教授读者逐步搭建和部署一些实用的范例网站,如个人博客、投票网站、子域管理网站、名言佳句网站和电子商务网站等。读者可以在本书的指导下,可以让这些实际可投入使用的网站“活灵活现”地呈现在网络上。
读者可以参照这些范例网站,按照本书各堂课的内容直接使用,或以它们为蓝本进行扩展设计和开发,最终将自己心仪的网站搭建并部署到网络上去。
由于涉及网站的部署,因此读者需要使用自己的电子邮箱或其他知名网站的ID注册或申请网络域名和网址。在实际部署本书的范例网站时,需要替换掉范例中的网络域名或网址,这样才能让这些网站真正成功部署并属于读者自己。具体步骤可以参考书中各堂课的相关内容。
最后祝大家学习顺利,早日成为Python + Django领域的“大师”!
2.1 内容简介
《Python Django 4构建动态网站的16堂课》是一本关于Django框架的网站开发入门教材,适合想要学习并掌握Django框架的开发人员阅读。《Python Django 4构建动态网站的16堂课》共分16课,内容包括网站开发环境的建立、Django网站快速入门、让网站上线、深入了解Django的MVC架构、网址的对应与委派、模板深入探讨、Models与数据库、网站表单的应用、网站的Session功能、网站用户的注册与管理、社交网站应用实践、电子商务网站实践、全功能电子商务网站django-oscar实践、使用Mezzanine快速打造CMS网站、名言佳句产生器网站实践以及课程回顾与你的下一步计划等。
《Python Django 4构建动态网站的16堂课》通过实际案例****和详细说明帮助读者从零开始掌握Django框架的开发技能,提高网站开发能力和水平。
2.2 本书作者
-
何敏煌:博士,目前在高校任教。除了研究KVM虚拟云端容错和分布式系统相关技术之外,他还利用业余时间致力于推广信息技术、自制课程和编程教育,并编写了多本畅销书。
-
林亮昀:擅长开发Web应用程序和搭建网站,目前担任软件工程师一职,专注于ERP系统设计和前端程序开发。喜欢挑战新技术,并持续不断地学习和成长,致力于打造高质量的产品和应用程序。
2.3 本书目录
目 录
第1课 网站开发环境的建立 1
1.1 网站的基础知识 1
1.1.1 网站的运行流程 2
1.1.2 Python/Django扮演的角色 3
1.1.3 使用Python/Django搭建网站的优势 4
1.2 创建网站的开发流程 4
1.2.1 开发流程简介 4
1.2.2 在Windows安装Anaconda 5
1.2.3 在Windows操作系统中建立Visual Studio Code开发环境 7
1.2.4 Python Django虚拟环境的创建 10
1.3 活用版本控制系统 13
1.3.1 版本控制系统Git简介 13
1.3.2 申请GitHub账号并创建远程代码仓库 14
1.3.3 在本地计算机中连接GitHub代码仓库 16
1.3.4 在不同的计算机上开发同一个网站 19
1.4 本课习题 20
第2课 Django网站快速入门 21
2.1 个人博客网站规划 21
2.1.1 博客网站的需求与规划 21
2.1.2 产生第一个网站框架 22
2.1.3 Django文件夹与文件解析 26
2.2 创建博客数据表 28
2.2.1 数据库与Django的关系 28
2.2.2 定义数据模型 28
2.2.3 启动admin管理界面 29
2.2.4 读取数据库中的内容 33
2.3 网址对应与页面输出 36
2.3.1 创建网页输出模板 36
2.3.2 网址对应urls.py 40
2.3.3 共享模板的使用 42
2.4 高级网站功能的运用 45
2.4.1 JavaScript以及CSS文件的引用 45
2.4.2 图像文件的应用 48
2.4.3 在主网页显示文章摘要 50
2.4.4 博客文章的HTML内容处理 51
2.4.5 Markdown语句的解析与应用 54
2.5 本课习题 57
第3课 让网站上线 58
3.1 DigitalOcean部署 58
3.1.1 申请账号与创建虚拟主机 58
3.1.2 安装Apache网页服务器及Django执行环境 61
3.1.3 修改settings.py以及000-default.conf等相关设置 65
3.1.4 创建域名并进行多平台设置 68
3.2 在Heroku上部署 74
3.2.1 Heroku账号申请与环境设置 74
3.2.2 修改网站的相关设置 77
3.2.3 上传网站到Heroku主机 78
3.2.4 Heroku主机的操作 81
3.3 本课习题 82
第4课 深入了解Django的MVC架构 83
4.1 Django的MVC架构简介 83
4.1.1 MVC架构简介 84
4.1.2 Django的MTV架构 84
4.1.3 Django网站的构成及配合 85
4.1.4 在Django MTV架构下的网站开发步骤 86
4.2 Model简介 88
4.2.1 在models.py中创建数据表 88
4.2.2 在admin.py中创建数据表管理界面 91
4.2.3 在Python Shell中操作数据表 95
4.2.4 数据的查询与编辑 97
4.3 View简介 99
4.3.1 建立简易的HttpResponse网页 99
4.3.2 在views.py中显示查询数据列表 100
4.3.3 网址栏参数处理的方式 102
4.4 模板简介 104
4.4.1 创建template文件夹与文件 104
4.4.2 把变量传送到template文件中 105
4.4.3 在template中处理列表变量 108
4.5 本课范例网站的最终版本摘要 109
4.6 本课习题 112
第5课 网址的对应与委派 113
5.1 Django网址架构 113
5.1.1 URLconf简介 113
5.1.2 委派各个网址到处理函数 115
5.1.3 urlpatterns的正则表达式语法说明(适用于Django 2.0以前的版本) 118
5.1.4 验证正则表达式设计URL的正确性 121
5.2 高级设置技巧 122
5.2.1 参数的传送 122
5.2.2 include其他整组的urlpatterns设置 123
5.2.3 URLconf的反解功能 123
5.3 本课习题 124
第6课 模板深入探讨 125
6.1 模板的设置与运行 125
6.1.1 settings.py设置 125
6.1.2 创建模板文件 128
6.1.3 在模板文件中使用现有的网页框架 129
6.1.4 直播电视网站应用范例 130
6.1.5 在模板中使用静态文件 134
6.2 高级模板技巧 136
6.2.1 模板的继承 136
6.2.2 共享模板的使用范例 138
6.3 模板语言 139
6.3.1 判断指令 140
6.3.2 循环指令 141
6.3.3 过滤器与其他的语法标记 145
6.4 本课习题 149
第7课 Models与数据库 150
7.1 网站与数据库 150
7.1.1 数据库简介 150
7.1.2 规划网站需要的数据库 151
7.1.3 数据表内容设计 153
7.1.4 models.py设计 155
7.2 活用Model制作网站 156
7.2.1 建立网站 156
7.2.2 制作网站模板 160
7.2.3 制作多数据表整合查询网页 162
7.2.4 调整admin管理网页的外观 166
7.3 在Django中使用MySQL数据库系统 169
7.3.1 安装开发环境中的MySQL连接环境(Ubuntu) 169
7.3.2 安装开发环境中的MySQL连接环境(Windows) 170
7.3.3 使用Google云端主机的商用SQL服务器 174
7.3.4 DB Browser for SQLite的安装与应用 178
7.3.5 Windows Subsystem for Linux安装MySQL客户端程序 179
7.3.6 在Windows下使用Docker安装MySQL 180
7.4 本课习题 187
第8课 网站表单的应用 188
8.1 网站与表单 188
8.1.1 HTML
表单简介 188
8.1.2 活用表单的标签 192
8.1.3 建立本堂课范例网站的数据模型 196
8.1.4 网站表单的建立与数据显示 198
8.1.5 接收表单数据存储于数据库中 199
8.1.6 加上删除帖文的功能 200
8.2 基础表单类的应用 202
8.2.1 使用POST传送表单数据 202
8.2.2 结合表单和数据库 206
8.2.3 数据接收与字段的验证方法 210
8.2.4 使用第三方服务发送电子邮件 213
8.3 模型表单类ModelForm的应用 217
8.3.1 ModelForm的使用 218
8.3.2 通过ModelForm产生的表单存储数据 220
8.3.3 为表单加上防机器人验证机制 221
8.4 MongoDB数据库的操作与应用 223
8.4.1 MongoDB的安装 223
8.4.2 Python对MongoDB的连接与操作 229
8.4.3 在Django网站中访问MongoDB 231
8.5 本课习题 234
第9课 网站的Session功能 235
9.1 Session简介 235
9.1.1 复制Django网站 235
9.1.2 Cookie简介 236
9.1.3 建立网站登录功能 238
9.1.4 Session的相关函数介绍 243
9.2 活用Session 244
9.2.1 建立用户数据表 244
9.2.2 整合Django的信息显示框架 251
9.3 Django Auth用户验证 254
9.3.1 使用Django的用户验证系统 254
9.3.2 增加User的字段 257
9.3.3 显示新增加的User字段 259
9.3.4 应用Auth用户验证存取数据库 261
9.3.5 使用Django系统提供的登录界面 266
9.4 动态图表展示 268
9.4.1 导入CSV文件数据 268
9.4.2 使用Chart.js在网页上绘制图表 270
9.4.3 使用Plotly在网页上绘制图表 275
9.5 本课习题 280
第10课 网站用户的注册与管理 281
10.1 建立网站用户的自动化注册功能 281
10.1.1 django-registration-redux的安装与设置 281
10.1.2 创建django-registration-redux所需的模板 284
10.1.3 整合用户注册功能到分享日记网站 287
10.2 pythonanywhere.com免费的Python网站开发环境 292
10.2.1 注册pythonanywhere.com账号 292
10.2.2 在pythonanywhere.com免费网站中创建虚拟环境以及Django网站 299
10.2.3 创建投票网站的基本架构 305
10.3 本课习题 312
第11课 社交网站应用实践 313
11.1 投票网站的规划与调整 313
11.1.1 网站功能与需求 313
11.1.2 数据表与页面设计 315
11.1.3 移动设备的考虑 318
11.2 深入探讨django-allauth 320
11.2.1 django-allauth的Template标签 321
11.2.2 django-allauth的Template页面 322
11.2.3 获取用户的信息 324
11.3 投票网站功能解析 326
11.3.1 首页的分页显示功能 327
11.3.2 自定义标签并在首页显示目前的投票数 328
11.3.3 使用AJAX和jQuery改进投票的效果 330
11.3.4 避免重复投票的方法 336
11.3.5 添加和删除投票项 338
11.3.6 新建Google账号链接 343
11.4 本课习题 351
第12课 电子商务网站实践 352
12.1 打造迷你电商网站 352
12.1.1 使用项目模板 352
12.1.2 创建网站所需要的数据表 353
12.1.3 上传照片的方法django-filer 358
12.1.4 把django-filer的图像文件添加到数据表中 362
12.2 增加网站功能 365
12.2.1 分类查看产品 365
12.2.2 显示产品的详细信息 369
12.2.3 购物车功能 371
12.2.4 建立订单功能 376
12.3 电子支付功能 385
12.3.1 建立付款流程 385
12.3.2 建立PayPal付款链接 388
12.3.3 接收PayPal付款完成通知 393
12.3.4 测试PayPal付款功能 394
12.4 本课习题 401
第13课 全功能电子商务网站django-oscar实践 402
13.1 Django购物网站Oscar的安装与使用 402
13.1.1 电子购物网站模板 402
13.1.2 Django Oscar购物车系统测试网站安装 403
13.2 构建Oscar的应用网站 406
13.2.1 创建Django Oscar购物网站项目 406
13.2.2 加上电子邮件的发送功能 413
13.2.3 简单地修改Oscar网站的设置 415
13.2.4 增加PayPal在线付款功能 419
13.3 自定义Oscar网站 425
13.3.1 建立自己的templates,打造定制的外观 425
13.3.2 网站的中文翻译 437
13.4 本课习题 438
第14课 使用Mezzanine快速打造CMS网站 439
14.1 快速安装Mezzanine CMS网站 439
14.1.1 什么是Mezzanine 439
14.1.2 安装Mezzanine 440
14.1.3 安装Mezzanine主题 445
14.1.4 Mezzanine网站的设置与调整 449
14.2 使用Mezzanine构建电子商务网站 451
14.2.1 安装电子购物车套件与构建网站 451
14.2.2 自定义Mezzanine网站的外观 453
14.3 本课习题 456
第15课 名言佳句产生器网站实践 457
15.1 构建网站前的准备 457
15.1.1 准备网站所需的素材 457
15.1.2 图文整合练习 458
15.1.3 构建可随机显示图片的网站 460
15.2 产生器功能的实现 464
15.2.1 创建产生器界面 464
15.2.2 产生唯一的文件名 466
15.2.3 开始进行图文整合以产生图片文件 466
15.2.4 准备多个背景图片文件以供选择 471
15.3 自定义图片文件功能 475
15.3.1 加入会员注册功能 475
15.3.2 创建上传文件的界面 476
15.3.3 上传文件的方法 480
15.3.4 实时产生结果 482
15.4 本课习题 484
第16课 课程回顾与你的下一步计划 485
16.1 善加运用网站资源 485
16.2 部署上线的注意事项 488
16.3 SSL设置实践 490
16.4 程序代码和网站测试的重要性 493
16.5 其他Python框架 496
16.6 你的下一步计划 496
2.4 适合读者
《Python Django 4构建动态网站的16堂课》既可作为希望快速上手Python+Django的初学者的参考书,也可作为Python培训机构在Python+Django方面的培训教程。
3. 购买链接
- 本书的京东购买链接为:Python Django 4构建动态网站的16堂课。