新書推薦:
![返璞归真:考古纠错的中国史](http://103.6.6.66/upload/mall/productImages/24/27/9787519916794.jpg)
《
返璞归真:考古纠错的中国史
》
售價:HK$
101.2
![制造不平等:英国社会的分化与冲突](http://103.6.6.66/upload/mall/productImages/24/27/9787500883258.jpg)
《
制造不平等:英国社会的分化与冲突
》
售價:HK$
52.9
![桌面屠夫合集(全2册)](http://103.6.6.66/upload/mall/productImages/24/28/9787213114878.jpg)
《
桌面屠夫合集(全2册)
》
售價:HK$
271.4
![南宋吉州的士大夫与宗族、地域社会](http://103.6.6.66/upload/mall/productImages/24/27/9787540376512.jpg)
《
南宋吉州的士大夫与宗族、地域社会
》
售價:HK$
112.7
![岩波新书:西班牙史10讲](http://103.6.6.66/upload/mall/productImages/24/27/9787500884576.jpg)
《
岩波新书:西班牙史10讲
》
售價:HK$
89.7
![大学问·实践社会科学系列·经验与理论:中国社会经济与法律的实践历史研究](http://103.6.6.66/upload/mall/productImages/24/26/9787559867254.jpg)
《
大学问·实践社会科学系列·经验与理论:中国社会经济与法律的实践历史研究
》
售價:HK$
124.2
![高强合金材料及其可靠性预测](http://103.6.6.66/upload/mall/productImages/24/28/9787122456151.jpg)
《
高强合金材料及其可靠性预测
》
售價:HK$
90.9
![流量战争 :通往流量自由之路](http://103.6.6.66/upload/mall/productImages/24/27/9787523408032.jpg)
《
流量战争 :通往流量自由之路
》
售價:HK$
90.9
|
編輯推薦: |
《中公版·Python高效开发指南:Python全栈开发实战》体系科学,条理清晰,语言通俗易懂,讲解深入浅出,实战性强。本书立足于Python全栈开发所需的基础知识,结合实际编程中所遇到的一些问题进行重点讲解,适用于Python全栈开发初学者。另外,本书也适合作为通过Python全栈开发进入网络爬虫、数据分析和人工智能领域的入门教材。
本书采用双色印刷模式,图文并茂,并提供视频讲解等增值服务。在本书的重要章节提供专业讲师的讲解视频,扫描二维码即可实现在线学习,操作便捷高效,使读者在掌握Python全栈开发相关知识的基础下,进一步加强实际操作的动手能力。
|
內容簡介: |
《中公版·Python高效开发指南:Python全栈开发实战》共分为十一章,涵盖了Python全栈开发的相关知识,对重难点内容进行了针对性讲解。本书面向Python全栈开发的初学者,按照由浅入深、循序渐进的规律,从介绍Web开发基础知识,到讲解Python全栈框架知识,后演示Python全栈开发的实战项目。
● Python Web开发概述(章)
介绍了Web开发的基础知识,还介绍了Python开发环境的搭建,重点介绍了PyCharm的使用。
● Web开发中需要的网络基础(第二章)
介绍了HTTP和TCP/IP的相关知识。
● Web前端编程技术(第三章至第五章)
介绍了Web前端开发必备的HTML、CSS和JavaScript,并且结合丰富的小案例讲解各个知识点。
● Python Web框架基础知识(第六章、第七章)
介绍了Python全栈开发中广泛应用的Flask框架和Django框架。其中,Flask框架介绍了搭建环境、路由、Jinja2模板、Flask表单、模型和一些实用的工具;Django框架介绍了搭建环境、模型层、视图层、模板层、Django表单和Django admin管理工具。
● Python Web框架实战项目(第八章至第十一章)
介绍了Django实战项目登录与注册子系统、图书管理子系统、选课系统的开发,以及Flask实战项目个人主页子系统的开发。
|
目錄:
|
章PythonWeb开发概述1
1.1软件架构类型1
1.1.1C/S架构1
1.1.2B/S架构2
1.2Web服务器2
1.2.1Web服务器概述2
1.2.2常用的主流Web服务器2
1.3Web开发常用技术3
1.4Python简介4
1.5安装Python5
1.5.1在Windows操作系统中安装Python5
1.5.2在Linux操作系统中安装Python10
1.5.3在macOS操作系统中安装Python10
1.6PyCharm开发工具的安装12
1.7Anaconda的安装17
1.8Python模块/包的安装19
1.8.1通过命令行窗口安装模块/包19
1.8.2通过PyCharm安装模块/包21
第二章Web开发中需要的网络基础22
2.1HTTP22
2.1.1URI和URL22
2.1.2HTTP和HTTPS22
2.1.3HTTP请求报文23
2.1.4HTTP请求过程24
2.1.5HTTP请求方法25
2.1.6HTTP响应报文25
2.2HTTP会话和Cookies27
2.2.1静态网页和动态网页27
2.2.2HTTP会话27
2.2.3Cookies28
2.3HTTP代理服务器28
2.3.1HTTP代理服务器的基本原理28
2.3.2HTTP代理服务器的主要功能29
2.4TCP/IP29
第三章HTML32
3.1HTML概述32
3.2HTML基础知识33
3.2.1HTML标签33
3.2.2HTML属性34
3.2.3HTML元素35
3.3HTML常用标签39
3.3.1HTML格式化标签39
3.3.2HTML标题标签40
3.3.3HTML段落标签42
3.3.4HTML词组标签44
3.3.5HTML超链接标签45
3.3.6HTML表格标签47
3.3.7HTML列表标签49
3.3.8HTML表单标签53
3.4HTMLDOM55
第四章CSS57
4.1CSS基础知识57
4.1.1创建CSS57
4.1.2CSS基本语法60
4.2CSS选择器61
4.2.1标签选择器61
4.2.2Id和Class选择器62
4.2.3通配符选择器64
4.2.4分组选择器65
4.2.5属性选择器66
4.2.6后代选择器67
4.2.7子元素选择器69
4.3CSS样式70
4.3.1CSS背景70
4.3.2CSS字体72
4.3.3CSS文本73
4.3.4CSS表格75
4.4CSS的框77
4.4.1CSS盒子模型77
4.4.2CSS内边距79
4.4.3CSS边框81
4.4.4CSS外边距82
第五章JavaScript83
5.1JavaScript83
5.1.1JS的使用83
5.1.2JS变量88
5.1.3JS变量的命名规则88
5.1.4JS变量的数据类型89
5.1.5JS对象90
5.1.6JS函数92
5.1.7JS输出93
5.1.8JS运算符94
5.1.9JS条件语句96
5.1.10JS循环语句100
5.1.11break语句和continue语句102
5.2JSON102
5.2.1JSON数据结构103
5.2.2JSON数据类型103
5.2.3字符串转换成JSON对象105
5.3JS异步编程技术AJAX106
第六章Flask框架基础知识108
6.1Flask概述108
6.1.1Web应用程序框架108
6.1.2Flask概念108
6.1.3安装Flask108
6.1.4个Flask应用程序109
6.2Flask路由详解111
6.2.1带变量的路由111
6.2.2URL构建113
6.2.3HTTP方法绑定114
6.2.4重定向与错误处理117
6.3Jinja2模板119
6.3.1Jinja2基本语法119
6.3.2Jinja2过滤器122
6.3.3Jinja2流程控制123
6.3.4模板继承124
6.3.5Flask静态文件125
6.3.6Flask消息闪现127
6.4Flask表单插件130
6.4.1安装Flask-WTF插件130
6.4.2创建表单130
6.4.3验证字段131
6.4.4表单视图132
6.4.5表单模板133
6.5Flask模型137
6.5.1安装Flask-SQLAlchemy插件137
6.5.2配置Flask-SQLAlchemy插件137
6.5.3创建数据模型137
6.5.4创建数据库138
6.5.5开发视图函数138
6.5.6显示学生信息模板139
6.5.7添加学生信息模板141
6.6Flask其他工具142
6.6.1Flask会话142
6.6.2FlaskCookies145
6.6.3Flask文件上传147
6.6.4Flask邮件149
第七章Django框架基础知识152
7.1Django概述152
7.1.1Django152
7.1.2MVC框架153
7.2搭建环境153
7.3Django入门示例154
7.3.1创建项目154
7.3.2创建应用155
7.3.3注册应用155
7.3.4配置数据库156
7.3.5其他项目设置156
7.3.6修改urls.py文件157
7.3.7运行数据库迁移158
7.3.8运行网站159
7.4模型层159
7.4.1模型和字段160
7.4.2关系类型161
7.4.3字段的参数163
7.4.4元数据163
7.4.5模型操作163
7.5视图层166
7.5.1URL路由166
7.5.2路由转发167
7.5.3视图函数168
7.6模板层169
7.6.1模板配置与查找169
7.6.2DTL模板语言171
7.7Django表单172
7.7.1HTML表单172
7.7.2Django的form表单174
7.8Djangoadmin管理工具177
第八章Django项目实战1:登录与注册子系统180
8.1项目概述180
8.1.1项目背景180
8.1.2项目目标180
8.1.3项目功能分析181
8.2项目基本操作181
8.2.1创建项目181
8.2.2创建登录注册应用login181
8.2.3注册登录注册应用login182
8.2.4设置语言和时区182
8.2.5启动开发服务器183
8.3设计模型类185
8.3.1设计数据模型185
8.3.2选择数据库186
8.3.3创建记录和数据表186
8.4使用Djangoadmin管理工具188
8.4.1在admin中注册模型188
8.4.2创建超级管理员188
8.4.3Django管理188
8.5URL路由和视图190
8.5.1路由设计190
8.5.2初步实现视图190
8.5.3初步创建模板191
8.5.4测试URL和视图192
8.6设计登录模板193
8.6.1使用原生HTML页面193
8.6.2引入Bootstrap4194
8.6.3添加静态文件196
8.7设计登录视图198
8.7.1登录视图198
8.7.2数据验证200
8.7.3验证用户名和密码201
8.7.4添加提示信息201
8.8设计登录表单203
8.8.1创建登录表单203
8.8.2修改登录视图204
8.8.3修改登录模板205
8.9图片验证码206
8.9.1安装django-simple-captcha206
8.9.2注册验证码应用captcha206
8.9.3添加路由207
8.9.4修改表单207
8.9.5修改登录模板207
8.9.6功能展示209
8.10Session会话209
8.10.1使用session209
8.10.2在首页模板中验证登录211
8.11设计注册视图212
8.11.1创建注册表单212
8.11.2重新编写注册模板212
8.11.3实现注册视图215
8.11.4密码加密218
8.12邮件注册确认219
8.12.1在Django中发送邮件219
8.12.2修改视图220
8.12.3处理邮件确认请求222
8.12.4修改登录规则223
8.12.5功能展示224
第九章Django项目实战2:图书管理子系统226
9.1项目概述226
9.1.1项目背景226
9.1.2项目目标226
9.1.3项目功能分析226
9.2项目基本操作227
9.2.1创建项目227
9.2.2创建应用227
9.2.3注册应用228
9.2.4设置语言和时区228
9.2.5设置模板229
9.3设计模型类229
9.3.1设计数据模型229
9.3.2设置数据库230
9.3.3迁移数据库231
9.4设计视图232
9.4.1添加图书视图232
9.4.2修改图书编目信息视图233
9.4.3显示所有图书视图234
9.4.4删除图书视图234
9.4.5查询图书视图234
9.5配置URL路由235
9.5.1URL全局配置文件235
9.5.2应用下URL配置文件236
9.6创建模板237
9.6.1创建文件237
9.6.2创建base.html基础模板237
9.6.3创建addbook.html239
9.6.4创建change.html241
9.6.5创建books.html242
9.7功能展示244
9.7.1添加图书页面244
9.7.2修改图书编目信息页面244
9.7.3显示所有图书页面244
9.7.4查询接口245
9.7.5数据库内容245
第十章Django项目实战3:选课系统246
10.1项目概述246
10.1.1项目背景246
10.1.2项目目标246
10.1.3项目功能分析246
10.2项目基本操作247
10.2.1创建项目247
10.2.2创建应用247
10.2.3注册应用248
10.2.4设置语言和时区248
10.2.5设置静态文件夹249
10.3设计模型类249
10.3.1设计数据模型249
10.3.2设置数据库253
10.3.3迁移数据库253
10.4配置URL路由254
10.5设计表单255
10.5.1UserForm表单255
10.5.2RegisterForm表单256
10.6设计视图257
10.6.1index()视图函数257
10.6.2index_t()视图函数257
10.6.3index_s()视图函数257
10.6.4login()视图函数257
10.6.5logout()视图函数259
10.6.6register()视图函数259
10.6.7tea1()视图函数261
10.6.8tea2()视图函数262
10.6.9reg()视图函数264
10.6.10stu1()视图函数265
10.6.11stu2()视图函数266
10.7创建模板267
10.7.1基础模板268
10.7.2选课系统模板271
10.8功能展示296
第十一章Flask项目实战:个人主页子系统300
11.1项目概述300
11.1.1项目背景300
11.1.2项目目标300
11.1.3项目功能分析300
11.2项目基本操作301
11.2.1创建项目301
11.2.2创建app包301
11.2.3创建__init__.py文件301
11.2.4创建my_view.py文件301
11.2.5创建microblog.py文件302
11.2.6运行302
11.2.7配置303
11.3开发Flask模板304
11.3.1引入模板304
11.3.2添加条件语句306
11.3.3添加for循环语句306
11.3.4模板的继承308
11.4Flask-WTF开发309
11.4.1创建用户登录表单309
11.4.2开发登录表单模板309
11.4.3设计登录表单视图310
11.4.4接收表单数据312
11.4.5完善字段验证314
11.4.6生成链接315
11.5开发Flask数据库316
11.5.1安装数据库迁移插件316
11.5.2配置Flask-SQLAlchemy317
11.5.3创建数据模型318
11.5.4创建数据库迁移319
11.5.5次数据库迁移320
11.5.6数据表间的关系320
11.5.7数据库的使用323
11.5.8密码哈希325
11.6Flask-Login开发326
11.6.1安装Flask-Login插件326
11.6.2准备用户模型327
11.6.3开发用户加载函数327
11.6.4开发登录视图函数327
11.6.5开发登出视图函数329
11.6.6强制用户登录329
11.6.7显示已登录的用户331
11.6.8开发用户注册功能332
11.7开发个人主页336
11.7.1设计URL336
11.7.2添加用户头像338
11.7.3使用Jinja2派生模板340
11.7.4添加更多个人资料341
11.7.5记录用户的后访问时间343
11.7.6个人资料编辑器344
11.7.7调试模式348
11.7.8自定义错误页面349
11.7.9在文件中记录日志351
11.7.10修复用户名重复BUG352
|
內容試閱:
|
章
Python Web开发概述
Web开发的范畴为HTML页面、JavaScript脚本、CSS层叠样式表和后台程序等。目前,流行的Web开发领域有Web应用程序、电子商务、社交网络和自媒体等。
一般专注于Web业务的大公司,其开发团队规模可达数百人。在Web开发过程中,遵循诸如敏捷开发等方法。Web开发人员按照工作职责的不同,可以分为前端开发人员、后端开发人员和全栈开发人员。前端开发人员负责开发在用户浏览器中运行的程序;后端开发人员负责开发服务器上的业务;全栈开发人员要掌握多种技能,兼顾前端开发人员和后端开发人员的工作。
随着互联网的发展,Web开发一直在飞速成长,越来越多的工具和技术被开发,用来构建更多动态和深度交互的网站。Web开发也影响了个人生活和网络营销,目前,开发一种更加个性化和交互式的Web应用来吸引公众已经成为Web开发的潮流。
1.1软件架构类型
互联网遵循一些特定的通信架构,流行的架构有客户端/服务器架构(C/S架构)和浏览器/服务器架构(B/S架构)。
1.1.1C/S架构
在C/S架构中,服务器是一台性能强大的计算机,负责分配和控制客户端需要的大多数资源与服务;客户端也是一台计算机,但是其计算性能不如服务器。当客户端通过互联网向服务器发送数据请求时,服务器将接受请求,对其进行处理,然后将请求的数据包传递回客户端。服务器具有同时管理多个客户端的能力。同样,单个客户端可以同时连接到多个服务器,其中每个服务器都为该客户端提供不同的服务。
要实现Web上的C/S架构,需要考虑如下因素:
①一组特定的语言以及通信标准,专门用于两个系统交互的协议。目前,采用的协议主要是HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)。
②服务器响应请求并返回数据。目前,流行的数据格式包括XML和JSON,JSON逐渐成为主流。
C/S架构的优点如下:
①具有丰富的接口和操作。
②容易确保安全性。
③点对点交互,响应速度快。
C/S架构的缺点如下:
①由于客户端应用程序需要在使用前安装,因此不符合某些用户的使用习惯。
②维护成本高,一次升级,所有客户端应用程序都需要更改。
1.1.2B/S架构
在B/S架构中,使用Web浏览器作为客户端的应用程序,事务逻辑主要在服务器端实现。
B/S架构的优点如下:
①不需要安装客户端应用程序,使用Web浏览器即可。
②可以直接放置在互联网上,通过交互控制多个客户端访问。
③维护成本低,只需要对服务器端进行维护。
B/S架构的缺点如下:
①运行速度稍慢。
②需要花费较高的成本来确保安全性。
③客户端按照请求响应的模式与服务器进行交互,通常需要刷新页面,但AJAX技术解决了这一问题。
1.2Web服务器
1.2.1Web服务器概述
Web服务器包括硬件和软件。在Python中,Web服务器是指软件。在硬件方面,Web服务器是一台运行Web服务器软件和保存网站组成文件的计算机,这台计算机连接到互联网,并支持与其他联网设备进行数据交换。在软件方面,Web服务器包括若干软件,这些软件控制Web用户如何访问Web服务器上的文件。目前,流行的Web服务器是HTTP服务器。HTTP服务器能够解析HTTP协议,可以通过URL进行访问,并将响应内容返回给请求的用户。
1.2.2常用的主流Web服务器
(1)Apache
Apache的全名是Apache HTTP Server,即Apache HTTP 服务器。它是目前全球使用广泛的Web服务器之一,支持几乎所有的操作系统,如Windows、UNIX、Linux、macOS等。全球约有60%的Web服务器是Apache HTTP服务器。Apache HTTP 服务器软件是开源免费的,并且具有在线社区,因此当用户出现问题或错误时,它可以提供在线支持。除此之外,用户还可以定制个性化的服务器。
(2)IIS
IIS的全名是Internet Information Server,是微软公司推出的Web服务器,几乎与Apache HTTP服务器具有一样的功能。但是IIS不开源,用户无法根据项目要求对IIS进行修改,因此具有开发限制。
(3)Lighttpd
Lighttpd是“light”和“httpd”的组合,于2003年发布。虽然Lighttpd与Apache和IIS相比,使用范围并不广泛,但是Lighttpd具有较小的CPU负载,并且安全、快速,这些优点使Lighttpd在众多开源轻量级Web服务器中脱颖而出。它可以同时支持大量连接,可以为用户提供诸如Auth、URL重写、灵活的虚拟主机、Servlet支持、HTTP代理支持等功能。
(4)Nginx
Nginx也是一个开源轻量级Web服务器,因其在低资源和低配置下提供的高性能而闻名。它主要用于缓存、媒体流、负载均衡、静态文件处理、自动索引编制等。Nginx使用异步方法在单个线程中处理请求。
(5)Sun Java System Web Server
Sun Java System Web Server是一个多线程、多进程的Web服务器,可为企业提供高性能、可伸缩且可靠的Web服务。
1.3Web开发常用技术
(1)HTML
HTML(HyperText Markup Language,超文本标记语言)是Web开发的基础,是网页制作的标记性语言,主要用于显示网页信息。
(2)CSS
CSS(Cascading Style Sheets,层叠样式表)用于表示HTML或XML等文件的样式,不仅可以修饰静态页面,还可以配合各种脚本语言对网页中的元素动态地进行格式化。
(3)JavaScript
JavaScript简称JS,是一种运行在浏览器中的解释型脚本语言。JavaScript通常用来为网页添加各种各样的动态效果,为用户提供更多流畅、美观的浏览体验。
(4)AJAX
AJAX(Asynchronous JavaScript And XML,异步的JavaScript和XML)将JavaScript、HTML、CSS、XML等多种技术进行整合,实现了客户端的异步请求操作,用户在不需要刷新页面的情况下,就可以与服务器进行通信。AJAX缩短了用户的等待时间,减轻了服务器的负担,也为用户提供了更好的体验。
(5)Java EE
Java EE由其规范和API定义,用于开发大型Web项目。Java EE包括Servlet、Java Server Pages(JSP)、Web服务和Enterprise JavaBeans(EJB),还包括与企业应用程序开发相关的许多API。
(6)ASP.NET
微软的ASP.NET不是一种语言,而是一种用于编写网站和软件的框架。ASP.NET页面是预编译的,因此它的运行速度比传统的ASP页面快。ASP.NET页面可以用多种语言编写,但是受欢迎的是C#和Visual Basic .NET(VB.NET)。
(7)PHP
PHP是一种开源轻量级Web服务器脚本语言,支持Apache HTTP服务器。
(8)Node.js
Node.js是在服务器上运行的JavaScript框架,服务器端代码包含在Node.js脚本中。Node.js可以在Apache之类的Web服务器上运行。Web服务器可以使用Node.js编写。
1.4Python简介
Python是由荷兰人Guido van Rossum创建,并于1991年发布个版本。1989年12月,“Python之父”Guido为了打发无聊的圣诞节假期,开始写Python解释器的个版本,当他在实现Python期间,还阅读了Monty Python’s Flying Circus的剧本,这是一部来自20世纪70年代的BBC喜剧。Guido认为这门语言需要一个简短、独特且略显神秘的名字,因此,他决定将其命名为Python。
Python是一门开源的、面向对象的、脚本解释型的高级语言。
Python的发展历程如下:
1991年发布的Python 0.9.0是个版本,这个版本已经具备了异常处理、函数等基本功能,以及list、dict、str等核心数据类型,它是面向对象的,同时也拥有模块系统。
Python 1.0版本于1994年1月发布,这个版本新增的功能主要是lambda、map、filter和reduce。
Python 2.0版本于2000年10月发布,这个版本新增的功能主要是内存管理和循环检测垃圾收集器,以及对Unicode字符编码标准的支持。然而,重要的变化是开发流程的改变。Python 2.0有了一个更透明的社区。
Python 3.0版本于2008年12月发布。Python 3.x不向后兼容Python 2.x,这意味着Python 3.x可能无法运行Python 2.x的代码。Python 3代表着Python语言的未来。
目前,Python已经发布到Python 3.8版本,而且连续多年蝉联受欢迎的编程语言。IEEE Spectrum发布的2020年十大编程语言排行如图1-1所示。
图1-1IEEE Spectrum发布的2020年十大编程语言排行
1.5安装Python
Python是一门跨平台的编程语言,使用Python编写的程序能够在各种不同的操作系统中运行。下面分别介绍如何在Windows、Linux、macOS操作系统中安装Python。
1.5.1在Windows操作系统中安装Python
(1)下载
①进入Python官网(https://www.python.org),单击“Downloads”菜单,在弹出的下拉菜单中选择“Windows”子菜单,如图1-2所示。
图1-2Python官网“Downloads”菜单之Windows
②选择Python版本,本书选择Python 3.7.9稳定版本,单击直接下载,如图1-3所示。
图1-3Python Windows下载包选择
其中,后缀为“installer”的文件是安装器,后缀为“zip file”的文件是压缩包,建议选择“installer”。“x86-64”表示64位操作系统,“x86”表示32位操作系统,现在主流计算机大多数都是64位操作系统。
(2)安装
①完成下载后,运行即可开始安装。安装初始界面如图1-4所示。“Install Now”表示立即安装,“Customize installation”表示自定义安装。建议勾选“Add Python 3.7 to PATH”复选框,将Python 3.7安装路径加入Windows环境变量中。
图1-4Python安装初始界面之Windows
②本书选择“Customize installation”进行自定义安装,单击“Customize installation”进入功能选择界面,如图1-5所示。
图1-5Python安装功能选择界面
③在功能选择界面,建议勾选全部功能复选框,然后单击“Next”按钮,进入高级选项界面,如图1-6所示。
图1-6Python安装高级选项界面
④在高级选项界面,建议勾选“Install for all users”复选框,还可以根据需要勾选其他选项,然后自定义安装路径,单击“Install”按钮进行安装,如图1-7所示。
图1-7Python正式安装界面
⑤安装完成后,进入安装成功的提示界面,如图1-8所示,单击“Close”按钮关闭该窗口。
图1-8Python安装成功界面
⑥完成安装后,开始测试安装是否成功。在搜索中输入“cmd”调出命令行窗口,然后输入命令“python-V”,按回车键,如果出现如图1-9所示界面,那么说
|
|